我在configuration文件中有以下设置:(/etc/rsnapshot.conf)
脚本/工具: http : //www.rsnapshot.org/
backup_script ssh [email protected] "sh /home/user/backup_mysql.sh" ./mysql
该示例显示如下:
backup_script ssh [email protected] "mysqldump -A > /var/db/dump/mysql.sql" unused2
我得到的错误:
ERROR: backup_script /usr/bin/ssh returned 255
我究竟做错了什么?
一种可能的方法是将ssh [email protected] "sh /home/user/backup_mysql.sh"转换为脚本(do_ssh.sh,这里)并调用该脚本。
就像是,
backup_script /path/to/do_ssh.sh ./mysql
我也build议你尝试把你的整个命令引用。
backup_script“ssh [email protected]”sh /home/user/backup_mysql.sh“”./mysql
rsnapshotconfiguration文件是制表符分隔的。 确保在backup_scrip,ssh命令和备份存储之间包含tabs 。 如果这不起作用,请尝试运行rsnapshot configtest来确定问题。
答复已更新
将备份行转换为以下格式会更方便:
backup_script /dir/yourscript.sh backupdirectory/
将中间部分放在shell脚本中,使其可执行并进行testing。 除此之外, ssh [email protected]应该非交互地连接到没有密码的远程主机。
这个问题与ssh有关。 从ssh手册页
如果发生错误,ssh会以远程命令的退出状态退出,或退出255
你应该使用ssh -v [vv]从ssh得到一个详细的输出,看看它有什么要说的。
你是否设置了远程主机的密钥authentication,或者是希望你交互地input密码的ssh命令?
如果你没有设置无密码authentication,那么ssh命令将无法authentication,因此返回一个错误(255似乎是任何错误的默认返回值)。
我有一个类似的问题,通过确保脚本“path” 中没有选项卡来解决。
代替
backup_script [tab] /bin/ssh [tab] [email protected] [tab] "/usr/bin/mysqldump -uroot --all-databases > ./mysqldump.sql" [tab] ./mysql/
尝试
backup_script [tab] /bin/ssh [email protected] "/usr/bin/mysqldump -uroot --all-databases > ./mysqldump.sql" [tab] ./mysql/