Skip to content

Commit fb5ba40

Browse files
committed
read config from cmd line
1 parent 76bc730 commit fb5ba40

File tree

4 files changed

+28
-17
lines changed

4 files changed

+28
-17
lines changed

log_to_graphs/README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ python ${src_dir}/numpy_helper.py -c parse -i ${ini_file} -s platform
157157
### 3. data to graphs(daily_log_plot.py)
158158

159159
```bash
160-
python ${src_dir}/daily_log_plot.py -n /tmp/pay_v4.npz -p ${pic_file} -t "Web Platform Daily Report(${yesterday})" --not-show
160+
python ${src_dir}/daily_log_plot.py -n ${src_dir}/platform.npz -p ${pic_file} -tt
161+
"Web Platform Daily Report(${yesterday})" --not-show
161162
cp ${pic_file} ${src_dir}/platform_daily_report.png
162163
```
163164

log_to_graphs/helper.ini

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,4 @@ log_file=logs/platform.log
4040
# 每秒的请求数: HH:mm:ss count
4141
request_cmd=awk '{print substr($0,13,8) }' %(log_file)s |sort | uniq -c
4242
##hour, cost, code
43-
resp_hour_cmd=awk -F ' - ' '{split($6,cost," " );split($5,status," " );print substr($0,13,2), cost[1], status[4]}' %(log_file)s
43+
resp_hour_cmd=awk -F ' - ' '{split($6,cost," " );split($5,status," " );if(status[4]<400){code=0}else{code=1};print substr($0,13,2), cost[1], code}' %(log_file)s

smtp/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,5 +53,5 @@ python mail_tool.py test #[your section name]
5353
```bash
5454
crontab -e
5555
# excute on 2:20 am
56-
20 2 * * * python /data0/monitor/daily_logs/mail_tool.py platform
56+
20 2 * * * python /data0/monitor/daily_logs/mail_tool.py -i /data0/monitor/daily_logs/mail.ini -s platform
5757
```

smtp/mail_tool.py

+24-14
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
except ImportError:
3535
import json as simplejson
3636

37-
import ConfigParser, logging
37+
import ConfigParser, logging, argparse
3838
import codecs, sys
3939

4040
from string import Template
@@ -210,11 +210,16 @@ def send(self, msg):
210210
# return False
211211

212212

213-
def init_smtp():
213+
def init_smtp(ini_file):
214214
"""Load basic and smtp config from mail.ini
215215
"""
216216
config = ConfigParser.RawConfigParser(allow_no_value=True)
217-
config.read(os.path.join(sys.path[0],'mail.ini'))
217+
print ('read ini file', ini_file)
218+
if not os.path.exists(ini_file):
219+
# use ini in python dir
220+
ini_file=os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),ini_file)
221+
print('try to use another place', ini_file)
222+
config.read(ini_file)
218223
base_dir = config.get('basic', 'base_dir')
219224
if sys.platform == 'win32': #decode to unicode
220225
base_dir = base_dir.decode('utf-8')
@@ -249,20 +254,22 @@ def load_msg(section, config):
249254
return MailTool.msg(ffrom, rcpt_tos, reply_to, subject, content, files)
250255

251256

252-
def main(args):
253-
"""
254-
python mail_tool.py test
255-
"""
256-
section = 'test'
257-
if len(args) > 1:
258-
section = args[1]
257+
def main():
258+
parser = argparse.ArgumentParser(prog='Mail Tool', usage='%(prog)s [options]')
259+
260+
parser.add_argument('-i', dest='ini', type=str, default='mail.ini',
261+
help='Mail Config file')
262+
parser.add_argument('-s', dest='section', type=str, default='test',
263+
help='section in .ini file')
264+
args = parser.parse_args()
265+
259266

260267
# init smtp tool
261-
tool, base_dir, config = init_smtp()
268+
tool, base_dir, config = init_smtp(args.ini)
262269

263270
# send one mail
264-
print('section = '+section)
265-
msg = load_msg(section, config)
271+
print('section = '+args.section)
272+
msg = load_msg(args.section, config)
266273
MailTool.show_msg(msg)
267274

268275
status = False
@@ -284,4 +291,7 @@ def main(args):
284291
tool.close()
285292

286293
if __name__ == '__main__':
287-
main(sys.argv)
294+
"""
295+
python mail_tool.py -i /tmp/mail.ini -s test
296+
"""
297+
main()

0 commit comments

Comments
 (0)