我正在使用以下脚本创建 mysql 备份并将其压缩。但生成的 .GZ 文件总是损坏的。当我尝试提取时,我得到了这个。
root@nix [/mysql_dumps/backup.16021]# tar -zxvf mysql-icme2193_icmedb-201309191523.gz tar:这看起来不像 tar 存档 tar:跳到下一个标题 tar:由于先前的错误而以失败状态退出
文件损坏的原因可能是什么?5 小时后我的头撞到了墙上。
这是代码。
#!/bin/sh
# System + MySQL backup script
# Full backup
# This script is licensed under GNU GPL version 2.0 or above
# Modified from http://bash.cyberciti.biz/backup/wizard-ftp-script.php
# ---------------------------------------------------------------------
### System Setup ###
DIRS=""
BACKUP=/mysql_dumps/backup.$$
NOW=$(date +"%Y%m%d%H%M")
DAY=$(date +"%a")
### MySQL Setup ###
MUSER="root"
MPASS="****"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"
### FTP server Setup ###
FTPD="/mysql_dumps/direname"
FTPU="backupf"
FTPP="****"
FTPS="46.xxx.xxx.xxx"
FTP="$(which ftp)"
### Other stuff ###
EMAILID="notify@example.com"
### do not edit below this line unless you know what you are doing ###
### Start Backup for mysql system ###
[ ! -d $BACKUP ] && mkdir -p $BACKUP || :
# Get databases name
DBS="database_name"
FILE=$BACKUP/mysql-$DBS-$NOW.gz
$MYSQLDUMP --no-tablespaces --skip-lock-tables --add-drop-table -u $MUSER -h $MHOST -p$MPASS $DBS | $GZIP -9 > $FILE
### Dump backup using FTP ###
#Start FTP backup using ftp
$FTP -inv $FTPS << END_SCRIPT
user $FTPU $FTPP
cd $FTPD
mkdir $FTPD
mkdir $FTPD/$NOW
cd $FTPD/$NOW
lcd $BACKUP
mput *
quit
END_SCRIPT
## remove temporary backups from local server
rm -fR $BACKUP/
### Find out if ftp backup failed or not ###
if [ "$?" == "0" ]; then
T=/tmp/backup.pass
echo "Date: $(date)">$T
echo "Hostname: $(hostname)" >>$T
echo "mySQL database backup done. Transferred backup to remote FTP site: $FTPS" >>$T
mail -s "[mysql $(hostname)] BACKUP Succeeded" "$EMAILID" <$T
rm -f $T
else
T=/tmp/backup.fail
echo "Date: $(date)">$T
echo "Hostname: $(hostname)" >>$T
echo "Backup failed" >>$T
mail -s "BACKUP FAILED" "$EMAILID" <$T
rm -f $T
fi