我创建了一个 cron 作业,运行一个脚本,将文件从一个位置移动到另一个位置。
以下是运行后的结果crontab -l
0 6 * * 0 根 /root/scripts/move.script.sh
move.script.sh 有以下几行代码:
#!/bin/sh
/bin/rm -rf /home/user1/folder2/Monday/*
/bin/mv /home/user1/folder1/* /home/user1/folder2/Monday/
使用此代码,我首先删除 Monday 文件夹中上周的内容,然后从 user1 的 folder1 中复制内容。
但这项工作根本就无法进行。
我已经检查过其他 cronjobs 但是它们运行正常并且问题仅出在这个 cronjob 上。
谁能告诉我在这里我做错了什么?
答案1
/etc/crontab
和 中的 cron 守护进程的格式/var/spool/cron/$username
不同。在 中/etc/crontab
,您必须指定将在其下执行命令的用户名,而在 中则不需要。
您执行的命令crontab -l
会显示执行该命令的用户的 cron 条目。它不会显示条目/etc/crontab
。简而言之,您必须root
从 cron 条目中删除该用户。
使用命令编辑 cron 条目
crontab -e
然后将您的条目替换为下面的条目
0 6 * * 0 /root/scripts/move.script.sh