使用 SSH 将文件复制到远程服务器

使用 SSH 将文件复制到远程服务器

我想备份 mysql 数据库并将其复制到远程服务器。

我愿意 :

mysqldump -uroot myDb>$HOME/myDb.sql && tar czf - $HOME/myDb.sql | ssh root@ip "dd of=$HOME/myDb_$(date +\%Y\%m\%d\%H\%M\%S).tar.gz" $HOME/backup/myDb

它不起作用,我得到了:

dd: opérande «/home/backup/myDb» non reconnu

当我做

mysqldump -uroot myDb>$HOME/myDb.sql && tar czf - $HOME/myDb.sql | ssh root@ip "dd of=$HOME/myDb_$(date +\%Y\%m\%d\%H\%M\%S).tar.gz"

它可以工作,但我想将文件复制到远程服务器上的文件夹中,而不是根文件夹中。

有没有办法做到这一点?

谢谢

答案1

这难道不更简单吗?

d = $(date +%Y%m%d%H%M%S)
mysqldump -uroot myDb>$HOME/myDb.$d.sql 
tar czf - $HOME/myDb.$d.sql
scp $HOME/myDb.$d.sql root@ip:$HOME/backup/

您的命令中的错误:最后一部分被视为dd命令的一部分。 而不是命令的一部分ssh

===

关于评论:

问题是,当执行 scp 时,它不知道文件的确切名称,因为有日期/小时/秒后缀。

变量“d”的内容不会随时间改变:

rinzwind@schijfwereld:~$ d=$(date +%Y%m%d%H%M%S)
rinzwind@schijfwereld:~$ echo "$d"
20190427115534
rinzwind@schijfwereld:~$ echo "$d"
20190427115534
rinzwind@schijfwereld:~$ echo "$d"
20190427115534
rinzwind@schijfwereld:~$ echo "$d"
20190427115534
rinzwind@schijfwereld:~$ echo "$d"
20190427115534

相关内容