系统文件,MYSQL的备份脚本
时间:2007-11-16 来源:huzi1986
    
      SFTP 远程备份 FreeBSD 系统设定文件及重要数据文件
  
    
    Description:
    
            狡兔有三窟,时时不忘备份 ~ 最近发现 rsync  的小问题,在资料量日渐成长状况下,发现 rsync 好像不能备份单一档案大于 3G 的数据,因此我改变方式备份数据方式,改采最基本的 SFTP 的服务将 BSD 1 的数据备份到 BSD 2 上的 HD 里,并且保留 BSD2 上的备份数据 5 天,而超过 5 天之后的数据会自动删除,备份数据的方式采用最简易的 shell script ,写法如下:
    
    Environment :
    
    BSD 1 Server  IP:77.77.77.77
    BSD 2 Server  IP:88.88.88.88
    
    Setp 1.
    
    在 BSD1 上写个自动备份的 shell script ,并且用 tar 来压缩备份数据,备份完成数据后即删除前一天的备份数据,接着采用 sftp 上传到 BSD2 Server 上。  
    
    #vi /data/backup/auto-backup.sh
    
    #!/bin/sh
    #
    host="88.88.88.88"
    id="账号"
    pw="密码"
    basedir="/data/backup/ntut_backup"
    remodir="/data/backup/ntut_backup"
    filename="*.tgz"
    today=`/bin/date +%Y%m%d`
    deldate=`/bin/date -v -1d +%Y%m%d`
    #
    echo off
    echo ' 本地资料备援 !!!'
    cd $basedir
  
    /etc/init.d/mysqld stop
    tar -czvf $today.ntut_etc.tgz /etc /usr/local/etc
    tar -czvf $today.ntut_home.tgz /home
    tar -czvf $today.ntut_g2data.tgz /data/g2data
  
    /etc/init.d/mysqld stop
    tar -czvf $today.ntut_mysql.tgz /var/db/mysql
  
/etc/init.d/mysqld start
    tar -czvf $today.ntut_www.tgz /usr/local/www
    rm -f $deldate.ntut_etc.tgz
    rm -f $deldate.ntut_home.tgz
    rm -f $deldate.ntut_g2data.tgz
    rm -f $deldate.ntut_mysql.tgz
    rm -f $deldate.ntut_www.tgz
    #
    echo off
    echo ' 远程数据备援 !!!'
    cd $basedir
    sftp "$host" <<EOC
    user $id $pw
    binary
    cd $remodir
    put $filename
    bye
    EOC
    
    #chmod 755 /data/backup/auto-backup.sh     # 将 auto-backup.sh 的权限改成可执行。
    
    编辑 crontab  #crontab -e 加入下面这行:
    
    30 4 * * * /data/backup/auto-backup.sh    # 让 BSD1 Server 每天零晨4点30分做一次本地及远程数据备份
    
    Setp 2.
    
    BSD 2 上只要有 ssh 服务就可透过 sftp  接受远程数据,写个 del-daily.sh 自动删除 5 天前的备份数据。
    
    #!/bin/sh
    #
    deldate=`/bin/date -v -5d +%Y%m%d`
    basedir="/data/backup/ntut_backup"
    #
    echo off
    echo '开始删除5天前的数据 !!!!'
    cd $basedir
    rm -f $deldate.ntut_etc.tgz
    rm -f $deldate.ntut_home.tgz
    rm -f $deldate.ntut_g2data.tgz
    rm -f $deldate.ntut_mysql.tgz
    rm -f $deldate.ntut_www.tgz
    
    #chmod 755 /data/backup/del-daily.sh     # 将 del-daily.sh 的权限改成可执行即可。
    
    编辑 BSD2 的 crontab  #crontab -e 加入下面这行:
    
    30 5 * * * /data/backup/del-daily.sh     # 让 BSD2 Server  每天零晨 5 点 30 分自动执行删除五天前的备份数据文件
    
    To Add.
    
    如何备份 mysql 数据库的档案?mysql 的数据库档案,是放置在 /var/db/mysql 下,因此我们需备份时,只需要备份此目录下的数据即可。
    
    范例如下:
    
    #tar czvf mysql_backup.tgz /var/db/mysql
  
PS:MYSQL热备份脚本
#!/bin/sh
mkdir /mnt/data/$(date +%y%m%d)
mysqlhotcopy database1 /mnt/data/$(date +%y%m%d)
rm -rf /mnt/data/$(date +%y%m%d --date='15 days ago')










