linux – ssh连接操作使用rsync超时

前端之家收集整理的这篇文章主要介绍了linux – ssh连接操作使用rsync超时前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用rsync备份我的本地设备上的远程服务器但是当我将它与cron作业结合时,我的ssh超时.为了清楚起见,数据存储在远程服务器上,我希望它存储在我的本地服务器上.必须将备份请求从本地服务器发送到远程服务器.

当我在终端中输入数据时,备份数据的命令正常工作:

rsync -chavzP --stats USERNAME@IPADDRES: PATH_TO_BACKUP LOCAL_PATH_TO_BACKUP

但是当我将它与这样的cron作业结合起来时:

10 11 * * * rsync -chavzP --stats USERNAME@IP_ADDRESS: PATH_TO_BACKUP LOCAL_PATH_TO_BACKUP

ssh连接超时.当cronjob执行它时,向root用户发送一封邮件,其输出如下:

From local.xx.xx.xx  Tue Jul  2 11:20:17 2013
X-Original-To: username
Delivered-To: username@username.local
From: username@username.local (Cron Daemon)
To: username@username.local
Subject: Cron <username@server> rsync -chavzP --stats USERNAME@IPADDRES: PATH_TO_BACKUP LOCAL_PATH_TO_BACKUP
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=username>  
X-Cron-Env: <USER=username>
X-Cron-Env: <HOME=/Users/username>
Date: Tue,2 Jul 2013 11:20:17 +0200 (CEST)

ssh: connect to host IP_ADDRESS port XX: Operation timed out
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: unexplained error (code 255) at /SourceCache/rsync/rsync-42/rsync/io.c(452)          [receiver=2.6.9]

所以rsync命令在刚刚输入终端时工作,但在cronjob使用时却没有.任何人都能解释一下吗?

解决方法

当您从cron运行命令时,它无法访问您的环境信息,就像从shell运行它一样.这意味着它找不到您的ssh密钥,或者您用于设置SSH代理的任何环境变量.

如果您使用的是无密码密钥,请将rsync行更改为:

rsync -chavzP -e "ssh -i /Users/username/.ssh/YOUR_PRIVATE_KEY_HERE" --stats USERNAME@IP_ADDRESS: PATH_TO_BACKUP LOCAL_PATH_TO_BACKUP

猜你在找的Linux相关文章