crontable定时执行Python脚本

出现的问题:添加了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')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值