來分享一個自己寫的 bash shell script,本身管理系上一些伺服器,但是要每天備份資料庫,系統檔案,以防系統整個 crash 掉,但是這個 script 可以對單一一台電腦做備份動作,當然裡面還可以加上 rsync 的動作,遠端備份到不同機器上面,我覺得這樣也可以,我在 Sayay BBS 上面的 ghost 大大版上看到 [Backup] Amanda,這套看起來不錯,可是一直沒有時間去玩,她網站的架構圖如下: http://amanda.zmanda.com/ 上面這個我還沒玩過,最近沒啥時間可以玩,不過大家可以去試試看,我目前還是用我自己寫的 script,那下面就是大概會介紹怎麼使用我的 bash script,非常簡單,很適合個人 linux 主機的備份喔。
############################################### # # 日期:2008.05.22 # 作者:appleboy ( appleboy.tw AT gmail.com) # 網站:http://blog.wu-boy.com # ############################################### 本檔案歡迎大家拿去使用,也可以進行修改,加上功能,或者是減少功能,目前有的功能如下: 1. 備份系統各類檔案 ex: /etc,/var/www/html 2. 備份 MySQL 資料庫,支援遠端備份 3. 備份 PgSQL 資料庫 4. 定期刪除幾天前備份資料,避免系統空間過於浪費 5. 每天定期 FreeBSD port tree 更新 6. 支援 rsync 備份到遠端系統 步驟一:就是下載這個 script 檔案,然後放到系統的哪個資料夾,然後修改檔案第一行
#!/usr/local/bin/bash # # 使用 bash run my script,上面是 FreeBSD 路徑 # Linux 請用 /bin/bash步驟二:開始設定 script 基本設定 ######### 開始設定 ##########
# # 設定刪除幾天前資料 # RETENTION_PERIOD="14"你可以選擇刪除幾天前的資料,寫14的話,就是保溜14天以內的資料喔
# # 設定檔案名稱 # backup_system_file="www_database.txt" backup_mysql_file="mysql_database.txt" backup_pgsql_file="pgsql_database.txt"選擇你要備份的地方:
# # 您所要備份的地方 # backup_home="/home/backup"首先:www_database.txt,這個檔案裡面請寫你要備份的資料夾,範例如底下:
# # 格式: # 備份資料夾 壓縮檔名 /usr/local/etc etc.tar.gz /usr/home/appleboy appleboy.tar.gz /usr/local/www/apache22/data www-data.tar.gzmysql_database.txt 部份:
# # mysql 資料庫部份格式 # 主機名稱 資料庫名稱 資料庫character_set localhost AP utf8 localhost WebHD utf8pg_database.txt 部份
# # 只需要填入 database 就好 # adwii以上檔案,請不要在檔案裡面加上註解,或者是在第一行加入 # ,這樣都不行的喔
# # 是否啟動備份系統檔案:1:備份 0:略過 # data_enable_backup="0" # # 設定mysql相關參數 # mysql_db_user="backup" mysql_db_passwd="wwwadmin" # # 是否啟動備份 mysql:1:備份 0:略過 # mysql_enable_backup="0" # # 設定pgsql相關參數 # pgsql_db_user="appleboy" pgsql_db_passwd="XXXXX" # # 是否啟動備份 pgsql:1:備份 0:略過 # pgsql_enable_backup="0" # # 備份到遠端系統 rsync # rsync_enable="0" password_file="/usr/local/etc/rsyncd/XXXX.secret" rsync_backup_dir="${backup_home}/*" rsync_remote_dir="appleboy@XXX.XXX.XXX::wuboy" # # 更新 FreeBSD port tree # port_tree_enable="0" # # 備份路徑 # back_www_dir="${backup_home}/www_data" back_mysql_db_dir="${backup_home}/mysql_db" back_pgsql_db_dir="${backup_home}/pgsql_db" log_dir="${backup_home}/log"上面說明還蠻清楚的吧,基本上剛開始預設功能都是關閉的,如果你要啟動她,就是把 0 改成 1
觀看 back_up.sh 檔案 www_database.txt 檔案 pgsql_database.txt 檔案 www_database.txt 檔案 上面檔案都是 UTF-8 格式,所以大家可以依照你系統的狀況調整,當全部設定好之後,接下來就是設定每天自動執行
# # 設定每天早上 5點39分 執行這個檔案 # 39 5 * * * root /usr/local/bin/bash /usr/home/backup/ back_up.sh 1> /dev/null 2>&1如果大家有問題請在這裡留言
See also
- OpenSSH 安全性漏洞 CVE-2016-0777 and CVE-2016-0778
- [筆記] 在 Ubuntu mount DVD ISO 檔案
- Geany 編輯器搭配 sshfs 參數注意事項
- AWS 機器上 duplicated RPM 問題
- 安裝 XCache 加速 PHP 執行速度
- Linux 程式開發編輯器 Geany + Fuse 遠端掛載
- 好用 PHP debug extension Xdebug on FreeBSD 安裝
- 快速安裝 Amazon EC2 LAMP 環境 (EC2 Console)
- 切換 Ubuntu apt 的 mirror site
- [Linux] 打造 Ubuntu 10.10 嵌入式系統 Embedded System 開發環境