出现的问题:添加了python脚本定时执行后,不创建open()的文件
ps:这个问题是万万没想到啊【吐血!!!】
ps:在这里感谢大佬们能够分享解决思路,遇到BUG能够得到他人指点是一件幸福的事情。
代码&配置 文件
/root/start.sh脚本内容:
#!/bin/bash
/usr/bin/python3 /root/a.py
/root/a.py代码:
# 向test.txt写入字符串
b = open("/root/test.txt", 'wb')
b.write("test-string".encode('utf-8'))
b.close()
crontab配置:
[root@G ~]# crontab -e
# 每一小时执行一次
*/60 * * * * sh /root/start.sh
解决思路
1、脚本的执行权限问题
修改权限:
[root@G ~]# chmod 744 /root/start.sh
2、脚本在crontab里的路径问题
检查文件路径:
# 命令尽量写绝对路径的防止找不到命令
# 脚本位置也尽量写成绝对路径
/usr/bin/python3 /root/a.py
命令位置查询:
[root@G ~]# whereis python3
python3: /usr/bin/python3.6 /usr/bin/python3.6m /usr/bin/python3.6-config /usr/bin/python3.6m-config /usr/bin/python3.6m-x86_64-config /usr/bin/python3 /usr/lib/python3.6 /usr/lib64/python3.6 /usr/local/lib/python3.6 /usr/include/python3.6m /usr/share/man/man1/python3.1.gz
3、定时计划的时间设置是否错误
# 每小时执行一次
*/60 * * * * sh /root/start.sh
4、脚本的头部问题
shell脚本的头部,不要写错了
#!/bin/bash
5、python代码中打开的文件路径
ps:人没了,手动执行可以创建文件,自动执行怎么也不创建文件
# 这里的文件路径也要写成绝对路径
# 写成相对路径在crontab自动执行时,无法创建文件
b = open("/root/test.txt", 'wb')