shell腳本歸檔壓縮指定文件
『壹』 Shell程序實現每天將主目錄下的所有目錄和文件歸檔 並壓縮為文件mybackup.tar.gz然後讓腳本開機自動運行
首先確定幾個問題:
1、主目錄路徑,備份文件存放路徑,要麼給腳本自己加上去也行
2、備份完數據後,主目錄下的文件刪不刪,不刪的話相當於正槐每天備份全量,刪除的話每天備份增量
3、備份規則是當天備份前一天的還是當天備份當天的,如果實時有數據,建議脊清敗備份前一天,如果固定時間有數據,那麼備份當天的即可。
#!/bin/bash
sdir=
ddir=
logfile=./backup-$(date -d "yesterday" +%Y-%m-%d).log
tar -zcvf $ddir/mybackup-$(date -d "yesterday" +%Y-%m-%d) $sdir/* --remove-files &> $logfile
腳本如上,對應三個問題的解釋
1、sdir指定要備份的目錄,ddir指定備份文件存放的目錄
2、腳本中歸檔壓縮命令那一行--remove-files是壓縮後刪除源文件的意思,對應刪除主目錄下的文件,如果不需要刪除,去櫻顫掉這個參數就行了
3、最後在需要執行的用戶下執行crontab -e(裡面的編輯方式和vim一樣)
0 0 * * * /bin/sh /#這里是腳本所在的目錄/#腳本名稱
:wq保存退出,執行crontab -l能看到這個任務即可,時間的話按自己的需要根據實際情況定義,這里定義每天的0點執行。
『貳』 用shell壓縮多個文件夾為zip
壓縮為bcd.zip,保存在a文件夾中,如果要靜默模式,zip命令加-q選項。
文件格式:
另指計算機文件壓縮演算法,原名真空,發明者為菲爾·卡茨,他於1989年1月公布了該格式的資料。
標准 ZIP 壓縮文件格式分析:標准 zip 文件格式由三部分組成:zip 壓縮數據段、中央目錄區、中央目錄區尾部。其中 zip 壓縮數據段又分為 zip 文件頭信息和壓縮數據。如圖 1、2、3 所示。帶☆的是在文件修復中經常用到的。
(2)shell腳本歸檔壓縮指定文件擴展閱讀:
命令參數:
Copyright (C) 1990-1999 Info-ZIP
Type 'zip "-L"' for software license。
Zip 2.3 (November 29th 1999). Usage。
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]。
The default action is to add or replace zipfile entries from list, which。
can include the special name - to compress standard input。
If zipfile and list are omitted, zip compresses stdin to stdout。
-f freshen: only changed files -u update: only changed or new files。
參考資料來源:網路-Zip
『叄』 SHELL腳本,解壓縮指定目錄下的ZIP文件到另一個目錄下
#!/bin/bash
foriin$(ls/opt/bin/*.zip2>/dev/null)
do
unzip$i-d/opt/wep
done
『肆』 編寫一個shell腳本每天16:30備份mysql數據並壓縮打包(打包文件按照當天日期命名)放到/root/data下
#!/bin/bash
date=$(date-d'+0days''+%Y-%m-%d')#聲明一個變數,並賦值當天日期
cd/root/data#進入目錄
mkdir$date#創建目錄
mysqlmp-uusername-ppassworddb_name>$date"db_name.sql"#資料庫備份,修改用戶名密碼,還有要備份資料庫
tar-zcf$date".tar.gz"$date#壓縮打包
rm-rf$date#刪除源數據
保存為bak.sh,每天16:30備份定時任務,沒有crontab命令:yum install vixie-cron
chmod +x /.../bak.sh
crontab -e
30 16 * * * /.../bak.sh