Sql 脚本备份网站及其数据库

Sql 脚本备份网站及其数据库,sql,linux,bash,web,Sql,Linux,Bash,Web,这是代码,其目的是在阵列中建立的几天内备份站点(在本测试中,我将所有7天都放在这里): #/bin/bash ###设置环境### DIRS=“INFO” BACKUP=/tmp/BACKUP$$ 现在=$(日期+%d-%m-%Y) INCFILE=“/root/tar inc backup.dat” 日期=$(日期+%a) FULLBACKUP=“Sun” DAYSOFBACKUP=(周一周二周三周四周五周六周日) ###MySQL配置### MUSER=“INFO” MPASS=“INFO”

这是代码,其目的是在阵列中建立的几天内备份站点(在本测试中,我将所有7天都放在这里):

#/bin/bash
###设置环境###
DIRS=“INFO”
BACKUP=/tmp/BACKUP$$
现在=$(日期+%d-%m-%Y)
INCFILE=“/root/tar inc backup.dat”
日期=$(日期+%a)
FULLBACKUP=“Sun”
DAYSOFBACKUP=(周一周二周三周四周五周六周日)
###MySQL配置###
MUSER=“INFO”
MPASS=“INFO”
MHOST=“INFO”
MYSQL=“$(哪个MYSQL)”
MYSQLDUMP=“$(哪个MYSQLDUMP)”
GZIP=“$(哪个GZIP)”
###FTP配置###
FTPD=“/”
FTPU=“信息”
FTPP=“INFO”
FTPS=“INFO”
###电子邮件配置###
EMAILID=“INFO”
###FS备份###
[!-d$BACKUP]&&mkdir-p$BACKUP | |:
###确定要运行的备份###
对于${DAYSOFBACKUP[@]}中的日期
做
如果[$day==“$FULLBACKUP”];然后
i=$(日期+%Hh%Mm%Ss)
FTPD=“/full”
FILE=“fs full-$NOW.tar.gz”
tar-zcvf$BACKUP/$FILE$DIRS
其他的
i=$(日期+%Hh%Mm%Ss)
FILE=“fs-i-$NOW-$i.tar.gz”
sudo tar-g$INCFILE-zcvf$BACKUP/$FILE$DIRS
fi
完成
###启动MySQL备份###
#获取所有数据库的名称
DBS=“$($MYSQL-u$MUSER-h$MHOST-p$MPASS-Bse‘show databases’)”
对于db,单位为$DBS
做
如果[db==“bricalia_tienda”];然后
FILE=$BACKUP/mysql-$db.$NOW-$i.gz
$MYSQLDUMP-u$MUSER-h$MHOST-p$MPASS$db |$GZIP-9>$FILE
fi
完成
###FTP备份到远程服务器###
#使用ncftp启动FTP备份
ftp$FTPS$MUSER$MPASS
箱子
sudo mkdir$FTPD
sudo mkdir$FTPD/$NOW
cd$FTPD/$NOW
lcd$备份
mput*
退出
###备份失败检查###
如果[“$?”==“0”];然后
rm-f$备份/*
其他的
T=/tmp/backup.fail
回显“日期:$(日期)”>$T
回显“主机名:$(主机名)”>>$T
回显“备份失败”>>$T

mail-s“备份失败”“$EMAILID”看起来,在您引用的注释的正下方是一个重复的行。如果检查:

### Determine which backup to run ###
if [ "$DAY" == "$FULLBACKUP" ]; then
if [ $day == "$FULLBACKUP" ]; then

我猜删除第二个if复选框会有帮助。

看起来,在您引用的注释的正下方是一个重复的行。如果检查:

### Determine which backup to run ###
if [ "$DAY" == "$FULLBACKUP" ]; then
if [ $day == "$FULLBACKUP" ]; then
我猜如果删除第二个复选框会有所帮助。

在“修复”之后,还有另一个问题:

### Determine which backup to run ###
for day in ${DAYSOFBACKUP[@]} do
if [ $day == "$FULLBACKUP" ]; then
  i=$(date +"%Hh%Mm%Ss")
  FTPD="/full"
  FILE="fs-full-$NOW.tar.gz"
  tar -zcvf $BACKUP/$FILE $DIRS
else
  i=$(date +"%Hh%Mm%Ss")
  FILE="fs-i-$NOW-$i.tar.gz"
  tar -g $INCFILE -zcvf $BACKUP/$FILE $DIRS
fi
此for循环不正确,请尝试以下操作:

### Determine which backup to run ###
for day in ${DAYSOFBACKUP[@]}
do
  if [ $day == "$FULLBACKUP" ]; then
    i=$(date +"%Hh%Mm%Ss")
    FTPD="/full"
    FILE="fs-full-$NOW.tar.gz"
    tar -zcvf $BACKUP/$FILE $DIRS
  else
    i=$(date +"%Hh%Mm%Ss")
    FILE="fs-i-$NOW-$i.tar.gz"
    tar -g $INCFILE -zcvf $BACKUP/$FILE $DIRS
  fi
done
在“修复”之后,还有另一个问题:

### Determine which backup to run ###
for day in ${DAYSOFBACKUP[@]} do
if [ $day == "$FULLBACKUP" ]; then
  i=$(date +"%Hh%Mm%Ss")
  FTPD="/full"
  FILE="fs-full-$NOW.tar.gz"
  tar -zcvf $BACKUP/$FILE $DIRS
else
  i=$(date +"%Hh%Mm%Ss")
  FILE="fs-i-$NOW-$i.tar.gz"
  tar -g $INCFILE -zcvf $BACKUP/$FILE $DIRS
fi
此for循环不正确,请尝试以下操作:

### Determine which backup to run ###
for day in ${DAYSOFBACKUP[@]}
do
  if [ $day == "$FULLBACKUP" ]; then
    i=$(date +"%Hh%Mm%Ss")
    FTPD="/full"
    FILE="fs-full-$NOW.tar.gz"
    tar -zcvf $BACKUP/$FILE $DIRS
  else
    i=$(date +"%Hh%Mm%Ss")
    FILE="fs-i-$NOW-$i.tar.gz"
    tar -g $INCFILE -zcvf $BACKUP/$FILE $DIRS
  fi
done

您的here文档语法已损坏。大概应该是
ftp$FTPSI已经编辑过了,但这还不是问题所在您在
do
之前缺少了分号。看看automysqlbackup和rsnapshot。您的here文档语法被破坏了。大概应该是
ftp$FTPSI已经编辑过了,但这不是问题所在您在
do
之前缺少分号。请查看automysqlbackup和rsnapshot。复制代码时出错。现在我已经编辑好了。同样的问题。复制代码时出错。现在我已经编辑好了。同样的问题。改变了,代码工作了。现在的问题是#使用ncftp FTP$FTPS启动FTP备份