【发布时间】:2021-03-28 00:06:53
【问题描述】:
我在 crontab 中有这个:
*/6 * * * * python3 /root/projects/download.py >> /root/projects/download_errors.log 2>&1
*/10 * * * * python3 /root/projects/upload.py >> /root/projects/upload_errors.log 2>&1
运行良好(每 5 分钟和每 10 分钟)
基本上,我的下载脚本从 FTP 服务器下载文件,然后上传脚本将其上传到不同的 FTP 服务器。问题是,两个脚本都运行良好 2 或 3 次,然后突然下载的文件变成 0 KB(在 FTP 服务器上不是 0 KB)。这很有趣,因为我的下载脚本中有这个:
if ftp.size('file.txt') > 0:
grabFile()
else:
print("%s The file has 0 KBs..." % date)
代码sn-ps:
下载脚本:
def grabFile():
filename = 'file.txt'
localfile = open(filename, 'wb')
ftp.retrbinary('RETR ' + filename, localfile.write, 1024)
ftp.quit()
localfile.close()
(everything else is the login part and initiating the ftplib)
上传一个:
my_file = "/root/projects/file.txt"
file = open(my_file,'rb')
session = ftplib.FTP()
session.connect(host='my_hostname', port=21)
session.login('my_username', 'my_password')
session.cwd('/path/to/the/file')
session.storbinary('STOR '+ 'file.txt', file)
session.quit()
file.close()
输出文件为空。
【问题讨论】:
-
按照目前的配置方式,两个脚本可能每 10 分钟以完全相同的时间运行。这可能就是问题所在。
-
我已经考虑过了。我改变了他们应该运行的时间,同样的事情发生了。
-
在您的问题中显示您的脚本代码和输出文件。如果脚本太长,请创建一个minimal reproducible example。显示修改后的
crontab。 -
完成。对不起。输出文件都是空的。
-
每 6 分钟和 10 分钟仍然在 30 分钟冲突。使用不同的 cron 规范。 IE。 */10 * * * * * 和 5-59/10 * * * * *。 Second 将每 10 分钟执行一次,但在一小时后执行 5 分钟。另见:stackoverflow.com/questions/12786410/…
标签: python-3.x linux bash cron ftplib