簡單linux命令之備份檔案
阿新 • • 發佈:2019-01-03
由於專案中需要匯出資料庫資料,就稍微研究了一下備份檔案的指令碼。
命令很簡單,用到的都是一些基本的。看一下,試試就沒問題了。
程式碼如下:
backup.sh內容如下
#!/bin/bash
#date 顯示時間,我們可以用時間的不同做為備份檔案的名字,這樣以前的備份就不會被覆蓋
datename=$(date +%Y%m%d) #定義時間變數名和顯示時間格式
bcfile=myfile/$datename;
sql=sql.del
# -x 引數判斷 $folder 是否存在並且是否具有可執行許可權
if [ ! -x "$bcfile" ]; then
echo "該使用者對$bcfile資料夾沒有許可權"
else
echo "該使用者對資料夾$bcfile有許可權"
fi
#-d判斷資料夾是否存在
if [ ! -d "$bcfile" ]; then
echo "$bcfile 資料夾不存在,進行建立檔案"
mkdir -p "$bcfile" #建立與時間相對應的檔案
else
echo "$bcfile檔案存在"
fi
# -f 引數判斷 檔案是否存在
if [ ! -f "$sql" ]; then
echo "$sql檔案不存在,進行建立"
touch "$sql"
else
echo "$sql檔案存在"
fi
#-a:此引數的效果和同時指定"-dpR"引數相同;
#-d:當複製符號連線時,把目標檔案或目錄也建立為符號連線,並指向與原始檔或目錄連線的原始檔案或目錄;
#-f:強行復制檔案或目錄,不論目標檔案或目錄是否已存在;
#-i:覆蓋既有檔案之前先詢問使用者;
#-l:對原始檔建立硬連線,而非複製檔案;
#-p:保留原始檔或目錄的屬性;
#-R/r:遞迴處理,將指定目錄下的所有檔案與子目錄一併處理;
#-s:對原始檔建立符號連線,而非複製檔案;
#-u:使用這項引數後只會在原始檔的更改時間較目標檔案更新時或是名稱相互對應的目標檔案並不存在時,才複製檔案;
#-S:在備份檔案時,用指定的字尾“SUFFIX”代替檔案的預設字尾; -b:覆蓋已存在的檔案目標前將目標檔案備份;
#-v:詳細顯示命令執行的操作。
cp -a -R $sql $bcfile #把要備份的檔案複製到上面建立的資料夾內
注意:linux指令碼是放在linhux上執行的,由於作業系統的不同,會導致一寫字元的不同。
大家注意使用的時候要將“\r”給替換成“”,並且注意“Tab”分隔符。