每天自動化備份資料庫,系統資料 shell script - Linux

Ingrid avatar
By Ingrid
at 2008-05-23T11:23

Table of Contents


自己管理機器需要用的 script,避免哪一天機器壞掉就完了

所以寫一個簡單的 bash script 來給大家參考看看,已經在

我機器上面可以運作了


###############################################
#
# 日期: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 備份到遠端系統

詳細安裝步驟:http://blog.wu-boy.com/2008/05/23/268/

步驟一:就是下載這個 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"

首先:www_database.txt,這個檔案裡面請寫你要備份的資料夾,範例如底下:

#
# 格式:
# 備份資料夾 壓縮檔名
/usr/local/etc etc.tar.gz
/usr/home/appleboy appleboy.tar.gz
/usr/local/www/apache22/data www-data.tar.gz
mysql_database.txt 部份:

#
# mysql 資料庫部份格式
# 主機名稱 資料庫名稱 資料庫character_set
localhost AP utf8
localhost WebHD utf8

pg_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="1"
#
# 備份到遠端系統 rsync
#
rsync_enable="0"
password_file="/usr/local/etc/rsyncd/XXXX.secret"
rsync_backup_dir="${backup_home}/*"
rsync_remote_dir="[email protected]::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

上面檔案都是 UTF-8 格式,所以大家可以依照你系統的狀況調整,當全部設定好之後,
接下來就是設定每天自動執行

#
# 設定每天早上 5點39分 執行這個檔案
#
39 5 * * * root /usr/local/bin/bash
/usr/home/backup/ back_up.sh 1> /dev/null 2>&1

http://blog.wu-boy.com/wp-content/uploads/2008/05/back_upsh.txt

這是 bash shell script 檔案,下載之後把檔名改成 back_up.sh

大概就可以了~

詳細教學:http://blog.wu-boy.com/2008/05/23/268/

如果有問題可以到 blog 那邊留言

歡迎大家指教

--
********************************************************
* Appleboy Blog *
* http://blog.Wu-Boy.com/ *
********************************************************

--
Tags: Linux

All Comments

Hedda avatar
By Hedda
at 2008-05-23T13:07
感謝分享!

有關於Ubuntu不能開機

David avatar
By David
at 2008-05-23T10:10
是這樣的, 小弟我是Ubuntu的新手 之前電腦出了點問題, 以致於無法在Ubuntu底下使用鍵盤和滑鼠(讀不到) 很多重要的資料都還沒備分 andgt; andlt; 請問有辦法使用LiveCD進入Ubuntu 把我的資料搶救出來嗎 又該如何做呢?? 感謝大家andlt;(_ _)andgt; ...

grep 能同時過濾 2個條件嗎

Mary avatar
By Mary
at 2008-05-23T02:04
※ 引述《in3 (in3)》之銘言: : ※ 引述《cotix (Feb 14, 2007)》之銘言: : : 我想要用grep 指令,同時過濾「兩個條件」 : : 比如說,我想抓出一行中,同時有提到 sta1 與 sta2 字眼, : : 但找了很久, 似乎文件都只提到單一條件 : : 請問我的要求,gr ...

Install JMF on Ubuntu

Isla avatar
By Isla
at 2008-05-23T01:26
已經按照官方所寫的文件去安裝 也修改過 bashrc 檔案了 點選Jmstudio 有gui出來 但是去Open file 跟說Input media not supported 請問有板上有大大 用出來嗎 謝謝 - ...

grep 能同時過濾 2個條件嗎

Charlie avatar
By Charlie
at 2008-05-22T21:59
※ 引述《cotix (Feb 14, 2007)》之銘言: : 我想要用grep 指令,同時過濾「兩個條件」 : 比如說,我想抓出一行中,同時有提到 sta1 與 sta2 字眼, : 但找了很久, 似乎文件都只提到單一條件 : 請問我的要求,grep可以滿足嗎... 用 egrep就好了 ps -au ...

套件管理的command

Jack avatar
By Jack
at 2008-05-22T20:54
因為目前所用的FC9是用文字介面的 並非圖形介面... 在圖形介面中 有一個很方便的軟體and#34;套件新增/移除and#34; 他會幫你檢查相依性之類的.... 請問一下在文字介面中 有沒有可以下的command可以用這軟體? 所需加的參數有哪幾種啊?? 可以請版友提供一些資料嗎....3 ...