sshpasssshpass 是一个可以自动输入密码的工具。如果未安装,运行以下命令安装:
• 对于 Debian/Ubuntu 系统:
bash展开代码apt update && apt install sshpass
• 对于 CentOS/RHEL 系统:
bash展开代码yum install sshpass
rsync 命令假设您需要将远程服务器的 /root/vanblog 目录同步到本地的 /root/vanblog 目录,命令如下:
bash展开代码/usr/bin/sshpass -p 'your_password' /usr/bin/rsync -avz -e "ssh -i /root/id_rsa" root@11.11.11.11:/root/vanblog /root/vanblog
将 your_password 替换为您的 SSH 密码。
crontab 任务编辑 crontab 文件:
bash展开代码crontab -e
添加以下行,每天下午 15:00 执行任务:
bash展开代码0 15 * * * /usr/bin/sshpass -p 'your_password' /usr/bin/rsync -avz -e "ssh -i /root/id_rsa" root@11.11.11.11:/root/vanblog /root/vanblog >> /root/rsync.log 2>&1
将 your_password 替换为您的 SSH 密码。
查看 crontab 任务:
bash展开代码crontab -l
等待 15:00 后,检查 /root/rsync.log 文件,确认任务是否执行成功。
cron 服务未找到如果运行 systemctl status cron 时提示 Unit cron.service could not be found,检查 crond 服务:
bash展开代码systemctl status crond
如果未运行,启动并启用它:
bash展开代码systemctl start crond
systemctl enable crond
• 检查 cron 服务是否正常运行:
bash展开代码systemctl status crond
• 确保任务路径正确,使用绝对路径。
• 查看日志文件(如 /var/log/cron 或 /var/log/syslog)排查问题。


本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!