Search code examples
linuxcronscp

SCP not working in crontab but works on commandline


After much research, I couldn't find a solution but post this question.

I have a computer A and B both Ubuntu desktop. I want to copy file from A to B. Steps I followed.

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/

If I do step 4 in commandline its working fine. But when I did same in crontab

22 10 * * * root scp -i ~/.ssh/id_rsa -r /var/www/abc abc@ip:/home/abc

Its doing nothing.


Solution

  • I have tried virtually every answer found related to the problem. The answer just came accidentally.

    I typed username instead of root and it worked. I don't know how but it worked. Hope this will help people like me.

    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