SCP 不能在 crontab 中工作,但可以在命令行中工作

tap*_*jor 5 linux cron scp

经过大量研究,我找不到解决方案,但发布了这个问题。

我的电脑A和B都是Ubuntu桌面。我想将文件从 A 复制到 B。我遵循的步骤。

1. ssh-keygen in computer A
2. Left password blank
3. Copied id_rsa.pub to computer B ~/.ssh/ from computer A
4. Renamed id_rsa.pub to authorized_keys in computer B
5. In computer A I did scp -i ~/.ssh/id_rsa -r /var/www/abc abc@ip:/home/abc/
Run Code Online (Sandbox Code Playgroud)

如果我在命令行中执行步骤 4,它工作正常。但是当我在 crontab 中做同样的事情时

22 10 * * * root scp -i ~/.ssh/id_rsa -r /var/www/abc abc@ip:/home/abc
Run Code Online (Sandbox Code Playgroud)

它什么也没做。

tap*_*jor 3

我几乎尝试了与该问题相关的所有答案。答案只是偶然出现的。

我输入用户名而不是 root 并且它起作用了。我不知道怎么做,但它有效。希望这能帮助像我这样的人。

2 10 * * * root /usr/bin/scp -i /home/username/.ssh/id_rsa -r /var/www/abc abc@ip:/home/abc

2 10 * * * username /usr/bin/scp -i /home/username/.ssh/id_rsa -r /var/www/abc abc@ip:/home/abc
Run Code Online (Sandbox Code Playgroud)