我尝试在Apache Linux环境中运行cron作业。具体来说,这是cron工作。
SHELL=/bin/sh
PATH=/usr/local/bin:/usr/local/sbin
* * * * * sh root/rsync.sh
这个rsync应该同步Apache上挂载的几个文件夹,运行一个Python脚本,并将结果复制到一个新文件中。我已经测试过rsync可以广泛地工作,所以我确信唯一的问题是cron作业。它看起来主要是这样的:(为隐私编辑)
if [ -e rsyncjob.lock ]
then
echo "Rsync job already running...exiting"
exit
fi
touch rsyncjob.lock
#your code in here
cd ..
rsync -r A B
rsync -r C D
python3 <python-file>
rsync <final file>
cd root
#delete lock file at end of your job
rm rsyncjob.lock
当我用cron -f
手动测试cron作业时,我总是得到以下错误:
cron:can't lock /var/run/crond.pid,otherpid may be 23719:资源暂时不可用
重新启动cron服务和删 debugging 误中列出的文件都失败了。
我已经尝试了不同的路由,但最常见的失败是rsync源和目的地得到根附加到正确的位置,然后cron作业失败。
我该如何解决此问题?
1条答案
按热度按时间juzqafwq1#
您的
cron -f
由于运行系统cron
示例而失败。systemctl stop cron
如果你确定的话。同时避免在cron作业中使用相对路径。例如
应该是这样的
也修复
cd ..
,rsync A B
和其他亲属.