我想转储数据库并将其复制到远程服务器,并在文件后加上 date_hour 后缀。以下是我所做的(当然它不起作用):
mysqldump -u root -p myDb > myDb.sql && \
tar -cvzf myDb.tar.gz myDb.sql && \
scp myDb.tar.gz [email protected]:myDb_$(date +\%Y\%m\%d\%H\%M\%S).tar.gz
正确的语法应该是什么?
谢谢
答案1
除了拼写错误、DNS、网络、客户端/服务器文件权限和端口问题(需要-P
scp 标志)之外,唯一让我印象深刻的其他事情是您没有在冒号后指定路径。
[电子邮件保护]:myDb_$(日期 +\%Y\%m\%d\%H\%M\%S).tar.gz
这意味着服务器可以决定将文件转储到哪里。如果是 /tmp(这可能是一种安全预防措施),那么它可能不会到达您期望的位置。
如果你指的是 root 的主文件夹,那么你可以使用
...x.x.x.x:/root/myDb_...
或者您可以使用“用户主文件夹”的简写波浪符号 (~)
...x.x.x.x:~/myDb_...
如果这不是解决方案,您能否使用每个命令的输出更新您的问题。:-)