我的配置文件中有以下设置:(/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
我究竟做错了什么?
答案1
一种可能的方法是转换为脚本(do_ssh.sh,此处)并调用该脚本。ssh [email protected] "sh /home/user/backup_mysql.sh"
就像是,
备份脚本 /path/to/do_ssh.sh ./mysql
我还建议您尝试用引号括住整个命令。
备份脚本“ssh [电子邮件保护]“sh /home/user/backup_mysql.sh” ./mysql
答案2
rsnapshot 配置文件以制表符分隔。请确保tabs
在 backup_scrip、ssh 命令和备份存储之间包含。如果这不起作用,请尝试运行rsnapshot configtest
以找出问题。
答案已更新
将备份行转换为以下格式会更加方便:
backup_script /dir/yourscript.sh backupdirectory/
将中间部分放入 shell 脚本中,使其可执行并测试。除此之外,还应以非交互方式无需密码即可连接到远程主机。ssh [email protected]
答案3
该rsnapshot.conf
示例实际上使用的是backup_exec
,而不是backup_script
。但是,backup_script
仍然可以用于通过 ssh 运行任意命令并同步临时目录中生成的任何文件。使用的任何命令都必须通过绝对路径引用。这对我的一个 mysql 数据库有效:
backup_script [tab] /usr/bin/ssh [email protected] "/usr/bin/mysqldump --single-transaction -u username dbname" > dbname.sql [tab] example.com/mysql/
答案4
您是否已经设置了与远程主机的密钥认证,或者 ssh 命令是否期望您以交互方式输入密码?
如果您尚未设置无密码身份验证,则 ssh 命令将无法进行身份验证,因此返回错误(255 似乎是任何错误的默认返回值)。