一、crontab运行shell脚本,py脚本 (注意事项)
shell
情景描述:
目前有个sh脚本他最初大致内容是。
cat t11.sh
#!/bin/bash
source /etc/profile
/bin/python3 /tmp/1.py
sh /tmp/1.sh
echo -e "$(date +%F)" >> /tmp/t11.log
############问题是
crontab调用他, 为啥py脚本没执行? 手动 sh t11.sh是正常执行的。
crontab | grep t11 是能看到每次的执行记录的
#排查思路:
1、都使用绝对路径 (指令写绝对路径) (shell/py 代码内容,涉及文件的操作) 他默认的pwd是在执行用户的家目录
2、都给x可执行权限
3、开头 source /etc/profile
4、crontab 写查看调试日志,比如 * * * * * sh /tmp/11.sh > /tmp/11.log 2>&1 (最初没考虑到py脚本内容的绝路路径。注意Py脚本里面try catch的书写)
5、使用set -x , echo $? , sh -x xxx.sh排查
5、创建一个简单的py程序,将hello world 输出到个record.txt
二、bclinux欧拉21.10编译安装nginx1.24.0
shell
yum -y install gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel
yum install gd-devel -y
cd /DATA/apps
mkdir -p tools-nginx-1.24
rz -bey #上传nginx-1.24.0.tar.gz (wget https://nginx.org/download/nginx-1.24.0.tar.gz)
tar -xf nginx-1.24.0.tar.gz
cd nginx-1.24.0
./configure --prefix=/DATA/apps/tools-nginx-1.24 --with-pcre --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-http_image_filter_module --with-mail --with-threads --with-mail_ssl_module --with-stream_ssl_module
make -j 4 && make install
#
cd /DATA/apps/tools-nginx-1.24/conf
mkdir -p vhost
vi nginx.conf
修改
user root;
worker_processes 8;
#在http{}块里加入
include vhost/*.conf;
#启动ngx
cd /DATA/apps/tools-nginx-1.24/sbin && ./nginx -t && ./nginx