首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在cron中通过ssh使用rsync?

如何在cron中通过ssh使用rsync?
EN

Ask Ubuntu用户
提问于 2017-04-12 11:45:06
回答 1查看 6.6K关注 0票数 6

我有一个私有虚拟服务器,我正在尝试从本地/home目录备份一些目录。

我准备了这个剧本:

代码语言:javascript
运行
复制
#!/bin/bash

/usr/bin/rsync -rvvv /home/arkadiusz/scripts root@XXX.XXX.26.106:/home/backup/

/usr/bin/notify-send "Backup complete" "~/scripts -> vps" -i cryptkeeper

在用户的crontab中,我添加了条目:

代码语言:javascript
运行
复制
*/1 * * * * /home/arkadiusz/scripts/vps.sh > /home/arkadiusz/cron-vps.log 2> /home/arkadiusz/cron-vps.error.log

执行shell脚本后,我的scripts目录不会出现在远程服务器的/home/backup/中。在cron-vps.log文件中,我只看到以下内容:

代码语言:javascript
运行
复制
opening connection using: ssh -l root XXX.XXX.26.106 rsync --server -vvvre.iLsfx . /home/backup/  (9 args)
[sender] _exit_cleanup(code=12, file=io.c, line=226): about to call exit(255)

cron-vps.error.log文件中,这是一个授权问题:

代码语言:javascript
运行
复制
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.1]

我还检查了远程服务器上的sshd状态:

代码语言:javascript
运行
复制
root@vpsXXXXXX:/home/backup# service sshd status
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2017-04-12 01:04:09 CEST; 12h ago
 Main PID: 281 (sshd)
   CGroup: /system.slice/ssh.service
           └─281 /usr/sbin/sshd -D

...

Apr 12 13:41:01 vpsXXXXXX.ovh.net sshd[5019]: Failed password for root from XXX.XXX.232.122 port 21782 ssh2
Apr 12 13:41:01 vpsXXXXXX.ovh.net sshd[5019]: Failed password for root from XXX.XXX.232.122 port 21782 ssh2
Apr 12 13:41:01 vpsXXXXXX.ovh.net sshd[5019]: Connection closed by XXX.XXX.232.122 port 21782 [preauth]

基于这些日志,授权似乎是一个问题,但是当我尝试使用以下命令登录到远程服务器时,我的SSH连接可以工作:

代码语言:javascript
运行
复制
ssh root@XXX.XXX.26.106

此外,rsync命令在终端中工作,没有任何密码:

代码语言:javascript
运行
复制
/usr/bin/rsync -rvvv /home/arkadiusz/scripts root@XXX.XXX.26.106:/home/backup/

我做错了什么?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2017-04-12 12:38:25

在cron-vps.error.log文件中,这是一个授权问题:

身份验证和授权是一个不同的问题。这是身份验证,失败了(在本例中,密码是从日志中可见的)。

很可能您已经将私钥设置为被加密,但您没有注意到它是正常的会话,因为您已经将其存储在ssh-agent中。它在您的会话中运行良好,但在从您的crontab启动的会话中不起作用。

票数 4
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/903938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档