sshpass
sshpass
是一个可以自动输入密码的工具。如果未安装,运行以下命令安装:
• 对于 Debian/Ubuntu 系统:
bashapt update && apt install sshpass
• 对于 CentOS/RHEL 系统:
bashyum install sshpass
rsync
命令假设您需要将远程服务器的 /root/vanblog
目录同步到本地的 /root/vanblog
目录,命令如下:
bash/usr/bin/sshpass -p 'your_password' /usr/bin/rsync -avz -e "ssh -i /root/id_rsa" [email protected]:/root/vanblog /root/vanblog
将 your_password
替换为您的 SSH 密码。
crontab
任务编辑 crontab
文件:
bashcrontab -e
添加以下行,每天下午 15:00 执行任务:
bash0 15 * * * /usr/bin/sshpass -p 'your_password' /usr/bin/rsync -avz -e "ssh -i /root/id_rsa" [email protected]:/root/vanblog /root/vanblog >> /root/rsync.log 2>&1
将 your_password
替换为您的 SSH 密码。
查看 crontab
任务:
bashcrontab -l
等待 15:00 后,检查 /root/rsync.log
文件,确认任务是否执行成功。
cron
服务未找到如果运行 systemctl status cron
时提示 Unit cron.service could not be found
,检查 crond
服务:
bashsystemctl status crond
如果未运行,启动并启用它:
bashsystemctl start crond
systemctl enable crond
• 检查 cron
服务是否正常运行:
bashsystemctl status crond
• 确保任务路径正确,使用绝对路径。
• 查看日志文件(如 /var/log/cron
或 /var/log/syslog
)排查问题。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!