目錄
一、 編寫指令碼
1.建立指令碼
2.寫入命令
3.執行指令碼檔案
二、 設定定時執行本指令碼。
1. 安裝crond
2. 修改crontab內容
3. 重新啟動crond服務
補充說明:
編寫乙個指令碼檔案,使指令碼可以執行備份命令。
例如,將檔案目錄 /home/backups/balalala 備份到/home目錄下,並壓縮。
命令格式: touch 路徑/檔名.sh
例如:輸入命令:
touch /home/backup.sh
首先進入指令碼:vi命令
vi /home/backup.sh
在指令碼內寫入:
#!/bin/sh
#建立乙個臨時檔案(要儲存備份的路徑)
mkdir /home/beifen
#資料存在backups目錄下,備份到beifen目錄下,所以先將資料拷過來
cp -r /home/backups/balalala /home/beifen
#將資料所在資料夾beifen打包
tar -zcpvf /home/backup$(date +%y%m%d).tar.gz /home/beifen
#刪除臨時檔案內容
rm -rf /home/beifen/
#刪除改資料夾下超過30天的檔案
find ./ -mtime +30 -name "*.tar.gz" -exec rm -rf {} \;
直接手動執行指令碼檔案。
命令格式:sh 路徑/檔名.sh
例如:
sh /home/backup.sh
例如:設定指令碼每7天執行一次。
如果沒有安裝crond服務就先裝上服務。
$ yum install crontabs
檢查服務狀態:
service crond status
輸入命令:crontab –e
進入後繼續輸入命令:
0 0 */7 * * /home/backup.sh
設定為每7天執行一次指令碼檔案
然後,儲存退出:wq
sh指令碼前面五個字段分別表示分鐘(0-59)、小時(0-23)、日(1-31)、月(0-12)、星期幾(0-6)後面的為指令碼所在目錄
crontab特殊的符號說明:例如:"*" 代表所有的取值範圍內的數字。特別要注意哦!
"/" 代表每的意思,如"*/5"表示每5個單位
"-" 代表從某個數字到某個數字
"," 分散的數字
30 21 * * * 表示每晚的21:30
45 4 1,10,22 * * 表示每月1、10、22日的4 : 45
輸入命令:
service crond restart
至此配置完成!
解壓備份的壓縮包命令
tar -xzvpf robin.tar.gz -c/
首先應該明確:linux/unix系統中,使用tar對檔案打包時,一般不建議使用絕對路徑。
通常是在兩台環境相似的機器上進行同步複製的時候,才有需要使用絕對路徑進行打包。使用絕對路徑打包時如果不指定相應的引數,
tar會產生一句警告資訊:」tar: removing leading `/』 from member names」,並且實際產生的壓縮包會將絕對路徑轉化為相對路徑。
比如:
root@queen ~ # tar -czvf robin.tar.gz /home/robin
tar: removing leading `/' from member names
/home/robin/
/home/robin/file1
/home/robin/file2
/home/robin/file3
root@queen ~ # tar -tzvf robin.tar.gz
drwxr-xr-x robin/root 0 2009-11-10 18:51:31 home/robin/
-rw-r--r-- robin/root 0 2009-11-10 18:51:28 home/robin/file1
-rw-r--r-- robin/root 0 2009-11-10 18:51:30 home/robin/file2
-rw-r--r-- robin/root 0 2009-11-10 18:51:31 home/robin/file3
root@queen ~ #
這樣的乙個壓縮包,如果我們再去解開,就會當前目錄(也即此例中的「~」)下再新建出「./home/robin/」 兩級目錄。
對於這樣的壓縮包,解壓方法是使用引數 「-c」指解壓的目錄為根目錄(「/」):tar -xzvf robin.tar.gz -c /
更為可靠的方法是在打包和解開的時候都使用引數 -p:
root@queen ~ # tar -czvpf robin.tar.gz /home/robin/
/home/robin/
/home/robin/file1
/home/robin/file2
/home/robin/file3
root@queen ~ # tar tzvf robin.tar.gz
drwxr-xr-x robin/root 0 2009-11-10 18:51:31 /home/robin/
-rw-r--r-- robin/root 0 2009-11-10 18:51:28 /home/robin/file1
-rw-r--r-- robin/root 0 2009-11-10 18:51:30 /home/robin/file2
-rw-r--r-- robin/root 0 2009-11-10 18:51:31 /home/robin/file3
root@queen ~ # tar -xzvpf robin.tar.gz
/home/robin/
/home/robin/file1
/home/robin/file2
/home/robin/file3
root@queen ~ #
mysql備份檔案夾 mysql 備份
mysql定期備份是一項重要的工作,但人工操作太繁瑣,也難避免有所疏漏,使用下面的方法即可讓系統定期備份資料。1 建立備份檔案夾 cd www makedir backup 2 編寫執行指令碼 vi autobackup 寫入以下內容 filename date y m d mysql bin di...
不改變檔案 夾 屬性備份檔案 夾
1.tar 壓縮 root admin test ls all drwxr xr x 2 admin root 4096 jan 21 03 50 test root admin test tar czf test.tar.gz test root admin test ls all drwxr x...
利用python備份檔案夾
以前寫過乙個非常白痴的備份指令碼,就是將著整個我資料夾都拷貝到u盤裡,每次拷貝前都將已經存在的資料夾刪除掉。這樣的話程式就很傻瓜 也很少 1 importos2 3def backup from path,to path 4if os.path.exists to path 5 os.system ...