Bash Mysql Shell转储脚本不工作

Bash Mysql Shell转储脚本不工作,bash,shell,mysqldump,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=$D

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

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

scp$BACKUP\u DIR/$AKT\u DATUM.BACKUP.sql.tgzuser@server1:/my/mysql/backups

这样更安全。但是如果你使用ftp,你可以使用

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
此错误是因为出现意外的换行。您需要将重定向标准输出到的文件放在同一行上,或者使用反斜杠表示行继续:

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

好吧,我这样编辑了我的脚本:$TAR-cvzf/backup/$AKT_-DATUM.backup.tgz/backup/和put“/backup/$AKT_-DATUM.backup.tgz”但他现在把它放在Ftp服务器上,但在tar之后,他给了我这个命令,在他上传完我的文件后,在我的Ftp/bin/tar:/backup/201504081645.backup.tgz:文件在我们读取时被更改了?无效的命令这就是为什么因为你正在存档文件/backup/$AKT_DATUM.backup.tgz所在的目录/backup/的原因这是不可能发生的,因为您将相同的文件添加到归档中,就像递归一样。保留完整命令:
$TAR-cvzf$AKT_DATUM.backup.sql.tgz$AKT_DATUM.backup.sql
,然后需要在ftp上上载相同的文件。改用ssh,它更安全、更简单。
./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