一、shell总结:
1、shell的sed命令有缓存中间文件,权限设置不好可能会导致文件没有权限。
2、chmod 是设置文件权限命令:还没完全理解。例如 chmod 777 create_config
3、chown -R datapush /var/spool/cron/datapush :chown是设置文件属主。
4、echo "hello" >> /var/spool/cron/datapush 往文件追加内容。
5、cat ${installpwd_root}/create_datapush_config/files/cron.txt >> /var/spool/cron/${userAuthority} 这个也是往文件追加内容,把某个文件的内容追加到后面这个文件。
6、sed -i '$d' ${installpwd_ide_conf}/datapush.properties 删除文件最后一行。
7、cat /dev/null > /opt/hihonor/apps/create_datapush_config/uninstall/uninstallist 清除文件内容。
8 > ,>> 单个>是覆盖;>>两个是追加
9、获取本机IP:
ip_get=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
10、执行python,打印日志文件,文件格式带日期:
today=$(date -d "now" +"%Y-%m-%d")
echo ${today}
#编译之后的python文件没法实时打印日志,python有缓存日志。
nohup ./datapush_retry >> datapush_retrylog/datapush_retry${today}.log
11、启动shell脚本,后面加个 & 表示窗口关闭或者 ctrl+c 也不会关闭进程,例如:
nohup ./datapush_retry >> datapush_retrylog/datapush_retry${today}.log &
二、python操作:
1、python可以本地编译好之后,变成可执行文件,在服务器上就不用引入对应的模块。
2、pyinstaller -F datapush_retry.py kafkaserversconf.py --onefile python 编译命令。
3、nohup 执行python文件,日志打印会有延迟,可以 -u 来去除缓存 例如
nohup python3 -u datapush_retry.py > out.log
也可以在打印的时候 print("hello", flush=True) 加上flush参数,同时加上
sys.stdout.flush() 语句。
4、python配置文件用双引号 unRegisterTopic = "bigdata_datapush_unregister"。
5、python配合shell 写服务器脚本比较方便,不用java那么多环境配置。
6、卸载python-kafka :pip3 uninstall kafka-python
7、安装python-kfka命令:
pip3 install kafka-python --trusted-host mirrors.aliyun.com -i http://mirrors.aliyun.com/pypi/simple --proxy http://proxysysx.his.hihonor.com:8080
8、shell脚本接收python返回,python要用print 不用 return