FTP数据库转储


FTP Database Dump

我有一个备份服务器,我用它从shell文件FTP到我的活动站点。目前,它可以FTP进入并发送一个zip文件夹到备份服务器。如果获得数据库的转储,我还希望它做什么。

我在实时站点Cron Jobs上使用了以下命令来创建文件。我希望避免这种情况,并在FTP

的shell脚本中完成所有操作
mysqldump -u User DB_name -p PASS > DB.sql

如果我从Cron作业中在实时站点上运行该命令,则该命令有效。我需要在FTP中做什么不同的操作?

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
  mysqldump -u User DB_name -p PASS > DB.sql
END_SCRIPT
exit 0

得到的错误是

?Invalid command.

这部分放在顶部,因为它是一个脚本命令,而不是FTP命令:

mysqldump -u User DB_name -p PASS > DB.sql

你得到了错误信息,因为你把shell命令放在ftp HEREDOC中。

然后执行ftp连接的第一部分HEREDOC(不确定'quote'应该做什么):

ftp -n $HOST <<END_SCRIPT
USER $USER
PASS $PASSWD

还取决于您的ftp客户端风格,如果上面的东西似乎不起作用,您可以尝试USER $USER $PASSWD。现在输入ftp命令:

cd theDirectoryWhereIWantToDropTheFile
put DB.sql
quit

最后,herdoc:

结束
END_SCRIPT

所以现在所有的在一起:

#!/bin/sh
#This is my script to make a sql dump file and send it via FTP to $HOST
HOST=theFTPServerName
USER=theUserName
PASSWD=thePassword
mysqldump -u User DB_name -p PASS > DB.sql
ftp -n $HOST <<END_SCRIPT
USER $USER
PASS $PASSWD
cd theDirectoryWhereIWantToDropTheFile
put DB.sql
quit
END_SCRIPT

替换HOST、USER和PASSWORD的伪值,您就得到了一个脚本,它可以不安全地发送数据,而不能保证它将完整地到达(感谢FTP!)。