我需要一些故障排除帮助。
我正在尝试运行一个脚本,该脚本每天将一个目录的内容复制到另一个目录中。我可以使用./config-copy.sh
etc手动成功运行它
SOURCE="/home/oxidized/.config/oxidized/logs/"
DESTINATION="/mnt/sync"
sudo cp -r "$SOURCE"* "$DESTINATION"
该脚本位于用户 oxidized 的主目录中。oxidized 用户是 的成员sudo
。
我在 crontab 中有这个条目:
17 00 * * * /home/oxidized/config-copy.sh
这应该每天下午 3 点运行,但我可以看到目标目录中的文件没有被更新。
我尝试过使用和不使用 sudo 来更改脚本中的复制命令,但没有什么区别。
/var/log/syslog
或 中没有任何有用的东西/var/log/cron.log
。
我已经尝试重新启动 cron 进程。
答案1
这是因为您的"$SOURCE"/*
已被您当前的(非)shell 扩展sudo
,我认为 无法通过 访问$USER
。
更好的方法是展开root
文件列表并进行复制:
sudo find "$SOURCE" -type f -print0 | \
xargs -0 -r sudo cp -t "$DEST"