Jump to content
新域网络技术论坛

2007年左右的FREEBSD备份脚本


Jamers
 Share

Recommended Posts

注意,由于这是在老版本的FREEBSD上运行的脚本,不能够保证能够使用在目前的10.1版本上,待验证。另外这是当时的环境路径,如有不同需要请修改相应路径。

 

 

FreeBSD小知识库备忘
2006-11-10, 14:50
在管理公司网络的时候会用到一些小技巧,备忘!

注意:以下路径均为Ports安装的路径,可能和其它部分路径不一致。

定时执行功能:
代码
ee /etc/crontab
#分时日月星期
#每天0点执行指定命令
0 0 * * * /home/jamers/backup/website/utfipb_db.sh
#每二小时执行一次
0 */2 * * * /home/jamers/backup/website/utfipb_fb.sh
#晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8 * * * /home/jamers/backup/config/configbackup.sh

备份数据库:
代码
#!/usr/local/bin/bash
#This is a ShellScript For Auto DB Backup
#Powered by aspbiz
#2004-09

#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
DBName=utfipb
DBUser=root
DBPasswd=
BackupPath=/home/jamers/backup/website/
LogFile=/home/jamers/backup/website/db.log
DBPath=/var/db/mysql/
BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End

NewFile="$BackupPath"utfipb_$(date +%Y%m%d)_db.tgz
DumpFile=utfipb_$(date +%Y%m%d)_db.sql
OldFile="$BackupPath"utfipb_$(date -v -15d +%Y%m%d)_db.tgz

echo "-------------------------------------------" >> $LogFile
echo $(date +"%Y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
   rm -f $OldFile >> $LogFile 2>&1
   echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
   echo "[$OldFile]No Old Backup File!" >> $LogFile
fi

if [ -f $NewFile ]
then
   echo "[$NewFile]The Backup File is exists,Can't Backup!" >>
$LogFile
else
   case $BackupMethod in
   mysqldump)
      if [ -z $DBPasswd ]
      then
         mysqldump -u $DBUser --opt $DBName > $DumpFile
      else
         mysqldump -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile
      fi
      tar czvf $NewFile -C $BackupPath $DumpFile  >> $LogFile 2>&1
      echo "[$NewFile]Backup Success!" >> $LogFile
      rm -rf $DumpFile
;;
   mysqlhotcopy)
      rm -rf $DumpFile
      mkdir $DumpFile
      if [ -z $DBPasswd ]
      then
         mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
      else
         mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>
$LogFile 2>&1
      fi
      #tar czvf $NewFile $DumpFile >> $LogFile 2>&1
      tar czvf $NewFile -C $BackupPath $DumpFile  >> $LogFile 2>&1
      echo "[$NewFile]Backup Success!" >> $LogFile
      rm -rf $DumpFile
;;
   *)
      /etc/init.d/mysqld stop >/dev/null 2>&1
      tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1
      /etc/init.d/mysqld start >/dev/null 2>&1
      echo "[$NewFile]Backup Success!" >> $LogFile
;;
   esac
fi

echo "-------------------------------------------" >> $LogFile

 

备份网站:
代码
#!/usr/local/bin/bash
#This is a ShellScript For Auto WEBSITE Backup
#Powered by Jamers
#2006-11-10

#Setting
#设置文件列表名
BackupPath=/home/jamers/backup/website/
LogFile=/home/jamers/backup/website/fb.log
WorkDir=/usr/local/www/apache22/data
#FullDir=/usr/local/www/apache22/data/ipb
#Setting End


NewFile="$BackupPath"utfipb_$(date +%Y%m%d).tgz
DumpFile="$BackupPath"utfipb_$(date +%Y%m%d).sql
OldFile="$BackupPath"utfipb_$(date -v -15d +%Y%m%d).tgz

echo "-------------------------------------------" >> $LogFile
echo $(date +"%Y-%m-%d %H:%M:%S") >> $LogFile
echo "-------------------------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
   rm -f $OldFile >> $LogFile 2>&1
   echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
   echo "[$OldFile]No Old Backup File!" >> $LogFile
fi

if [ -f $NewFile ]
then
   echo "[$NewFile]The Backup File is exists,Can't Backup!" >>
$LogFile
else
    tar czvf $NewFile -C $WorkDir ipb >> $LogFile 2>&1
fi

echo "-------------------------------------------" >> $LogFile

备份FreeBSD配置信息:
代码
#!/usr/local/bin/bash
#This is a ShellScript For Auto Config Backup
#Powered by Jamers
#2006-11-10

#Setting
#设置文件列表名
BackupPath=/home/jamers/backup/config/
LogFile=/home/jamers/backup/config/backup.log
FileList=/home/jamers/backup/config/needlist
#Setting End

NewFile="$BackupPath"config$(date +%Y%m%d).tgz
DumpFile="$BackupPath"config$(date +%Y%m%d).sql
OldFile="$BackupPath"config$(date -v -15d +%Y%m%d).tgz

echo "-------------------------------------------" >> $LogFile
echo $(date +"%Y-%m-%d %H:%M:%S") >> $LogFile
echo "-------------------------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
   rm -f $OldFile >> $LogFile 2>&1
   echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
   echo "[$OldFile]No Old Backup File!" >> $LogFile
fi

if [ -f $NewFile ]
then
   echo "[$NewFile]The Backup File is exists,Can't Backup!" >>
$LogFile
else
    tar czvf $NewFile -T $FileList >> $LogFile
fi

echo "-------------------------------------------" >> $LogFile

 

接上面:needlist 把需要备份的文件写出来就可以了…
代码
/etc/rc.conf
/etc/csh.cshrc
/etc/csh.logout
/etc/passwd
/etc/group
/etc/pwd.db
/etc/resolv.conf
/etc/aliases
/etc/crontab
/usr/local/etc/php.conf
/usr/local/etc/php.ini
/usr/local/etc/clamd.conf
/usr/local/etc/pure-ftpd.conf
/etc/pureftpd-mysql.conf
/usr/local/www/postfixadmin/config.inc.php
/usr/local/etc/apache22/
/usr/local/etc/authlib/
/usr/local/etc/postfix/
/usr/local/etc/MailScanner/
/usr/local/etc/samba/
/usr/local/lib/sasl2/smtpd.conf

 

 

Link to comment
Share on other sites

经过昨天测试,发现数据库备份脚本有一点小问题,修改为下列内容,测试无误:

#!/usr/local/bin/bash
#This is a ShellScript For Auto DB Backup
#Powered by aspbiz
#2004-09   2014.12.21调整修改

#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式
#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
DBName=ipb
DBUser=root
DBPasswd=
BackupPath=/home/jamers/backup/website/
LogFile=/home/jamers/backup/website/db.log
DBPath=/var/db/mysql/
BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End

NewFile="$BackupPath"ipb_$(date +%Y%m%d)_db.tgz
DumpFile=ipb_$(date +%Y%m%d)_db.sql
OldFile="$BackupPath"ipb_$(date -v -15d +%Y%m%d)_db.tgz

echo "-------------------------------------------" >> $LogFile
echo $(date +"%Y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
   rm -f $OldFile >> $LogFile 2>&1
   echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
   echo "[$OldFile]No Old Backup File!" >> $LogFile
fi

if [ -f $NewFile ]
then
   echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile
else
   case $BackupMethod in
   mysqldump)
      if [ -z $DBPasswd ]
      then
         mysqldump -u $DBUser --opt $DBName > $BackupPath$DumpFile
      else
         mysqldump -u $DBUser -p$DBPasswd --opt $DBName > $BackupPath$DumpFile
      fi
      tar czvf $NewFile -C $BackupPath $DumpFile  >> $LogFile 2>&1
      echo "[$NewFile]Backup Success!" >> $LogFile
      rm -rf $BackupPath$DumpFile
;;
   mysqlhotcopy)
      rm -rf $DumpFile
      mkdir $DumpFile
      if [ -z $DBPasswd ]
      then
         mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
      else
         mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >> $LogFile 2>&1
      fi
      #tar czvf $NewFile $DumpFile >> $LogFile 2>&1
      tar czvf $NewFile -C $BackupPath $DumpFile  >> $LogFile 2>&1
      echo "[$NewFile]Backup Success!" >> $LogFile
      rm -rf $DumpFile
;;
   *)
      /usr/local/etc/rc.d/mysql-server stop >/dev/null 2>&1
      tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1
      /usr/local/etc/rc.d/mysql-server start >/dev/null 2>&1
      echo "[$NewFile]Backup Success!" >> $LogFile
;;
   esac
fi

echo "-------------------------------------------" >> $LogFile 

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...