1 頁 (共 1 頁)

[Linux] How to do auto-backup

發表於 : 2003-10-26 00:40
bbangel
小竹子 寫:[教學] How to do backup / restore ?
......因為 phpmyadmin 沒辦法一次搞定
目前最佳的備份方法就是利用 mysql 指令....
提供一點我個人每日自動備份資料 scripts 的做法:

建一個 backupsql.sh 的執行檔放在『定時執行工作 (Cron)』中執行:
  1. 把 MySQL 的資料庫用 tar 壓縮存檔到本機指定備份目錄中的依日期自動建檔名的備份檔中\r
  2. 再把己經存檔完成的壓縮備份檔用自動 ftp 上傳到指定遠端的備援空間中存放\r
  3. 萬一主機硬碟掛掉須要回存時還有遠端主機的同樣檔案可以解壓縮回存,自動雙套備份比較安全\r

代碼: 選擇全部

[color=red]#先取得日期函數內容[/color]
day=`date +%Y-%m-%d`
[color=red]#存放資料庫備份檔的目錄-(先開好目錄)[/color]
basedir="/home/mysql/backup"
[color=red]#再把 MySQL 的 database 用 tar 指令壓縮到開好的指定目錄#[/color]
[color=red]#最好先把 MySQL 服務暫停掉[/color]
/etc/rc.d/init.d/mysqld stop
[color=red]#轉到 MySQL 資料庫存放的路徑的上一層目錄 ( PATH = /var/lib/mysql )[/color]
cd /var/lib
[color=red]#將資料庫壓縮存檔成自動定名的指定檔案[/color]
tar -zcf "$basedir"/mysql."$day".tar.gz mysql 2> /dev/null 
[color=red]#壓縮備份完成後再開啟 MySQL 服務[/color]
/etc/rc.d/init.d/mysqld start
[color=red]#將本地端的目錄轉到將要自動上傳備份檔的目錄上[/color]
cd /home/mysql/backup
[color=red]#輸入目的站台的 url 或 ip[/color]
host="ftp.myweb.com.tw"
[color=red]#輸入將要自動 FTP 上傳的遠端備援站台的登入 id[/color] 
id="my-id"
[color=red]#輸入將要自動 FTP 上傳的遠端備援站台的登入password[/color]
pw="my-password"
[color=red]#輸入遠端主機欲存放備份檔的目錄-(也是要事先開好的目錄)[/color]
remodir="bakup_sql"
[color=red]#輸入將要被上傳的備份檔檔名[/color]
filename=mysql."$day".tar.gz
[color=red]#<<<<-底下就是 ftp 自動連線並操作上傳動作的 script !->>>>#[/color]
ftp -n "$host" > "$basedir"/"$filename".log 2> "$basedir"/"$filename".log
<<EOC
user $id $pw
binary
cd $remodir
put $filename
bye
EOC
[color=red]#<<<<<<<<< ftp 自動連線並操作上傳動作完成!->>>>>>>>>#
########Modify by bbangel ################[/color]