python 脚本
cat feishu_alert.py
import requests
import json
from datetime import datetime as dt
import argparse
import sys
def send_msg(_url, _msg):
"""
:param _url:
:param _msg:
:return:
"""
headers = {'Content-Type': 'application/json;charset=utf-8'}
data = {
"msg_type": "text",
"content": {
"text": "{0} {1}".format(dt.now().strftime('%Y-%m-%d %H:%M:%S'), _msg)
}
}
r = requests.post(_url, data=json.dumps(data), headers=headers)
return r.text
if __name__ == '__main__':
# 注释掉的是不必要的调试用的
# args_list = sys.argv
# if args_list.__len__() < 2:
# print("加参数 --msg 后面跟要发送的消息")
# exit(1)
#
# arg1 = sys.argv[1]
# if arg1 == '-h' or arg1 == '--help':
# print("加参数 --msg 后面跟要发送的消息")
# exit(0)
parser = argparse.ArgumentParser(prog='feishu_alert',description='飞书消息通知消息')
parser.add_argument('--msg', type=str, default=None, required=True, help="要发送的消息体")
args = parser.parse_args()
msg = args.msg
url = 'https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxx'
print(send_msg(url, msg))
shell 脚本
$ cat feishu_alert.sh
#!/bin/bash
para=`echo ${@:2}`
python3 /usr/local/bin/feishu_alert.py $1 "$para"
echo ${@:2}
的作用是把 shell 脚本的参数,从第二个开始到最后一个参数,当作一个参数
否则shell脚本传入的参数只要有空格,即使加了引号,传入python 脚本后也会被切分成多个参数
使用方法
- 当不传任何参数时
$ sh feishu_alert.sh
usage: feishu_alert [-h] --msg MSG
feishu_alert: error: the following arguments are required: --msg
- help 帮助信息
$ sh feishu_alert.sh -h
usage: feishu_alert [-h] --msg MSG
飞书消息通知消息
optional arguments:
-h, --help show this help message and exit
--msg MSG 要发送的消息体
- 发送报警信息
$ sh feishu_alert.sh --msg "消息测试 this is a test"
{"Extra":null,"StatusCode":0,"StatusMessage":"success"}
- 消息样式截图