我有一台远程服务器和一台本地服务器。我正尝试将远程服务器上的夜间备份自动传输到本地服务器。SSH 密钥已设置,因此不需要密码。
使用以下命令,它可以手动工作:
scp -r -P {REMOTEPORT} user@serveripaddress:/home/remoteuser/directory /home/localuser/directory
我想设置一个 cronjob 来运行上一个操作,但我对编写实际脚本还不熟悉。有没有一个简单的脚本可以实现这一点?
答案1
您可以编写一个简单的脚本,例如backup.sh
:
#!/bin/bash
/usr/bin/scp -r -P {REMOTEPORT} user@serveripaddress:/home/remoteuser/directory /home/localuser/directory
使其可执行chmod +x backup.sh
然后,编辑 crontab( crontab -e
) 并进行设置:
0 0 * * * /path/to/backup.sh > /var/log/backup.log 2>&1
另外,您可以直接从 cron( crontab -e
) 运行它:
0 0 * * * /usr/bin/scp -r -P {REMOTEPORT} user@serveripaddress:/home/remoteuser/directory /home/localuser/directory > /var/log/backup.log 2>&1
附言:如果您遇到麻烦,我们当然可以提供帮助,但我强烈建议您阅读此内容以进行调试:为什么我的 crontab 不工作?我该如何排除故障?