備份國中/小的學務系統SFSx之script


個人作法先備份一份在本機,再利用NFS或FTP備份到其它主機以利保險之!

# vi autobk.sh

-編輯如下-
#!/bin/bash
# Get the date messages and backup directory
day=`date +%Y-%m-%d`
backup_dir="/backup"

#!備份目的路徑
dir1="/var/www/html/"
dir2="/var/lib/mysql/sfs3"
dir3="/var/lib/mysql/teach_data"

#!備份後的檔名
targetfile1="sfs3web-"`date ‘+%y-%m-%d’`.tar.gz
targetfile2="sfs3db-"`date ‘+%y-%m-%d’`.tar.gz
targetfile3="teach_data-"`date ‘+%y-%m-%d’`.tar.gz

#!執行tar打包
tar zcvf $backup_dir/$targetfile1 $dir1
tar zcvf $backup_dir/$targetfile2 $dir2
tar zcvf $backup_dir/$targetfile3 $dir3

#!mysql資料庫資訊
databasename1="sfs3"
rootpassword1="password"
databasename2="teach_data"
rootpassword2="password"

#!sql匯出後的檔名
sqlfilename1="sfs3sql-"`date ‘+%y-%m-%d’`.sql
sqlfilename2="teach_data-"`date ‘+%y-%m-%d’`.sql

#!以root身份利用mysqldump指令匯出sfs3資料庫資料
mysqldump $databasename1 > $backup_dir/$sqlfilename1 -u’root’  -p’password’
mysqldump $databasename2 > $backup_dir/$sqlfilename2 -u’root’  -p’password’

#!zip壓縮匯出檔

zip $backup_dir/$sqlfilename1.zip $backup_dir/$sqlfilename1
zip $backup_dir/$sqlfilename2.zip $backup_dir/$sqlfilename2

#!只保留zip檔請執行下列指令 不刪除請保留#
rm -rf $backup_dir/$sqlfilename1
rm -rf $backup_dir/$sqlfilename2

#!切換到存放目錄
cd $backup_dir

#!設定ftp帳號密碼與存放目錄
host="10.1.1.200"
user="id"
password="password"
replace_dir="sfs3backup"

#!啟動ftp連接
ftp -in << EOF
open $host
user $user $password
cd $replace_dir
bin
put $targetfile1
put $targetfile2
put $sqlfilename1.zip
put $sqlfilename2.zip
EOF
------

# vi autobk2xxx.sh

-編輯如下-
#!/bin/bash

# mount dns-backup-directory
mount  10.1.1.200:/backup/sfs /mnt/bk2dns

# Get the date messages and backup directory
day=`date +%Y-%m-%d`
backup_dir="/mnt/bk2dns"

#!備份目的路徑
dir1="/var/www/html/"
dir2="/var/lib/mysql/sfs3"
dir3="/var/lib/mysql/teach_data"

#!備份後的檔名
targetfile1="sfs3web-"`date ‘+%y-%m-%d’`.tar.gz
targetfile2="sfs3db-"`date ‘+%y-%m-%d’`.tar.gz
targetfile3="teach_data-"`date ‘+%y-%m-%d’`.tar.gz

#!執行tar打包
tar zcvf $backup_dir/$targetfile1 $dir1
tar zcvf $backup_dir/$targetfile2 $dir2
tar zcvf $backup_dir/$targetfile3 $dir3

#!mysql資料庫資訊
databasename1="sfs3"
rootpassword1="password"
databasename2="teach_data"
rootpassword2="password"

#!sql匯出後的檔名
sqlfilename1="sfs3sql-"`date ‘+%y-%m-%d’`.sql
sqlfilename2="teach_data-"`date ‘+%y-%m-%d’`.sql

#!以root身份利用mysqldump指令匯出sfs3資料庫資料
mysqldump $databasename1 > $backup_dir/$sqlfilename1 -u’root’  -p’password’
mysqldump $databasename2 > $backup_dir/$sqlfilename2 -u’root’  -p’password’

#!zip壓縮匯出檔

zip $backup_dir/$sqlfilename1.zip $backup_dir/$sqlfilename1
zip $backup_dir/$sqlfilename2.zip $backup_dir/$sqlfilename2

#!只保留zip檔請執行下列指令 不刪除請保留#
rm -rf $backup_dir/$sqlfilename1
rm -rf $backup_dir/$sqlfilename2

# umount dns-backup-directory
umount /mnt/bk2dns

------

再看要放到 /etc/cron.daily

或利用crontab -e
0 19 * * 0-5 /root/cronfile/autobk.sh
0 23 * * 0-5 /root/cronfile/autobk2dns.sh

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s