您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何使用rsync備份文件/目錄到Linux服務器上的Shell腳本,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
使用該腳本會以交互的方式實施備份,你需要提供遠程備份服務器的主機名/ip地址和文件夾位置。我們使用一個單獨的列表文件,在這個文件中你需要列出要備份的文件/目錄。我們添加了兩個腳本,第一個腳本在每次拷貝完一個文件后詢問密碼(如果你啟用了ssh密鑰驗證,那么就不會詢問密碼),而第二個腳本中,則只會提示一次輸入密碼。
我們打算備份bckup.txt,dataconfig.txt,docs和orcledb。
[root@Fedora21 tmp]# ls -l total 12 -rw-r--r--. 1 root root 0 May 15 10:43 bckrsync.sh -rw-r--r--. 1 root root 0 May 15 10:44 bckup.txt -rw-r--r--. 1 root root 0 May 15 10:46 dataconfig.txt drwxr-xr-x. 2 root root 4096 May 15 10:45 docs drwxr-xr-x. 2 root root 4096 May 15 10:44 oracledb
bckup.txt文件包含了需要備份的文件/目錄的詳情
[root@Fedora21 tmp]# cat /tmp/bckup.txt /tmp/oracledb /tmp/dataconfig.txt /tmp/docs [root@Fedora21 tmp]#
#!/bin/bash # 將備份列表文件的路徑保存到變量中 backupf='/tmp/bckup.txt' # 輸入一個提示信息 echo "Shell Script Backup Your Files / Directories Using rsync" # 檢查是否輸入了目標服務器,如果為空就再次提示用戶輸入 while [ x$desthost = "x" ]; do # 提示用戶輸入目標服務器地址并保存到變量 read -p "Destination backup Server : " desthost # 結束循環 done # 檢查是否輸入了目標文件夾,如果為空就再次提示用戶輸入 while [ x$destpath = "x" ]; do # 提示用戶輸入目標文件夾并保存到變量 read -p "Destination Folder : " destpath # 結束循環 done # 逐行讀取備份列表文件 for line in `cat $backupf` # 對每一行都進行處理 do # 顯示要被復制的文件/文件夾名稱 echo "Copying $line ... " # 通過 rsync 復制文件/文件夾到目標位置 rsync -ar "$line" "$desthost":"$destpath" # 顯示完成 echo "DONE" # 結束 done
[root@Fedora21 tmp]# ./bckrsync.sh Shell Script Backup Your Files / Directories Using rsync Destination backup Server : 104.*.*.41 Destination Folder : /tmp Copying /tmp/oracledb ... The authenticity of host '104.*.*.41 (104.*.*.41)' can't be established. ECDSA key fingerprint is 96:11:61:17:7f:fa:...... Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '104.*.*.41' (ECDSA) to the list of known hosts. root@104.*.*.41's password: DONE Copying /tmp/dataconfig.txt ... root@104.*.*.41's password: DONE Copying /tmp/docs ... root@104.*.*.41's password: DONE [root@Fedora21 tmp]#
#!/bin/bash # 將備份列表文件的路徑保存到變量中 backupf='/tmp/bckup.txt' # 輸入一個提示信息 echo "Shell Script Backup Your Files / Directories Using rsync" # 檢查是否輸入了目標服務器,如果為空就再次提示用戶輸入 while [ x$desthost = "x" ]; do # 提示用戶輸入目標服務器地址并保存到變量 read -p "Destination backup Server : " desthost # 結束循環 done # 檢查是否輸入了目標文件夾,如果為空就再次提示用戶輸入 while [ x$destpath = "x" ]; do # 提示用戶輸入目標文件夾并保存到變量 read -p "Destination Folder : " destpath # 結束循環 done # 檢查是否輸入了目標服務器密碼,如果為空就再次提示用戶輸入 while [ x$password = "x" ]; do # 提示用戶輸入密碼并保存到變量 # 使用 -s 選項不回顯輸入的密碼 read -sp "Password : " password # 結束循環 done # 逐行讀取備份列表文件 for line in `cat $backupf` # 對每一行都進行處理 do # 顯示要被復制的文件/文件夾名稱 echo "Copying $line ... " # 使用 expect 來在腳本中輸入密碼 /usr/bin/expect運行第二個帶有輸出結果的腳本
Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。
關于如何使用rsync備份文件/目錄到Linux服務器上的Shell腳本就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。