Mysql Shell转储脚本不起作用

时间:2015-04-08 03:05:16

标签: bash shell mysqldump

嘿,我的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 

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

编辑:这是我的错误:

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

如果你可以帮助我会很棒:)

最诚挚的问候 oRxx

2 个答案:

答案 0 :(得分:1)

如果您要上传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/
    

答案 1 :(得分:0)

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

此错误是因为您有意外的换行符。您需要将重定向stdout的文件放在同一行或使用反斜杠表示行继续:

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