Mysql Shell 转储脚本不工作

Mysql Shell dump Script not working

嘿,我的 shell 脚本中有一个我无法处理的问题,这就是为什么我需要你的帮助。

这是我的脚本:

MYSQL_DUMP=/usr/bin/mysqldump
BACKUP_DIR=/backup/mysql
TAR=/bin/tar
RM=/bin/rm
DB_NAME=Homepage
DB_USER=root
DB_PASS=liron3211
AKT_DATUM=`date +%Y%m%d%H%M`


$MYSQL_DUMP $DB_NAME -u $DB_USER --password=$DB_PASS > \
$BACKUP_DIR/$AKT_DATUM.backup.sql


cd $BACKUP_DIR
$TAR -cvzf $AKT_DATUM.backup.sql.tgz $AKT_DATUM.backup.sql


$RM $AKT_DATUM.backup.sql 

所以我希望脚本创建我的数据库 "Homepage" 的 sql 文件并将其放入文件夹 /backup/mysql 以及如何将它从我的根服务器传输到另一个 ftp 服务器?

编辑:这是我的错误:

./backup.sh: line 11: syntax error near unexpected token `newline'

如果你能帮助我就太好了:)

最好的问候 oRxx

如果您要通过 ssh 上传,请使用 scp:

scp <file to upload> <username>@<hostname>:<destination path>

在底部添加到您的文件: 请注意,您应该与主机建立无密码连接!

scp $BACKUP_DIR/$AKT_DATUM.backup.sql.tgz user@server1:/my/mysql/backups

这种方式安全多了。但是如果你使用 ftp,你可以使用 heredoc 来做到这一点,例如

ftp -n $FTP_SERVER <<End-Of-Session
# -n option disables auto-logon

user anonymous "$FTP_PASS"
binary
cd $FTP_DIR
put "$AKT_DATUM.backup.sql.tgz"
bye
End-Of-Session
  • 不要忘记在脚本开头添加变量:

     FTP_PASS=password1
     FTP_SERVER=my.ftp.server
     FTP_DIR=/remote/dir/
    
./backup.sh: line 11: syntax error near unexpected token `newline'

这个错误是因为你有一个意外的换行符。您需要将要将标准输出重定向到的文件放在同一行或使用反斜杠表示行继续:

$MYSQL_DUMP $DB_NAME -u $DB_USER --password=$DB_PASS > \
$BACKUP_DIR/$AKT_DATUM.backup.sql