顯示
最近因為想要對一個沒有數據庫的網站目錄進行打包備份,發(fā)現如果結合Rclone這個“神器”的話,打包備份指定的目錄文件夾并上傳到各大網盤中將是一件非常容易的事情。除此之外,還可以上傳到支持FTP、WebDAV、SFTP、Https等協議的存儲中。
主要是用到Linux的兩個命令:zip和tar,這兩個命令可以實現給指定目錄打包。其實,如果不想打包的話我們可以用到SCP和Rsync,這兩個命令可以幫助我們快速復制或者同步文件夾到指定目錄,特別適合超大量文件或者超大文件的傳輸備份任務。
這篇文章就來分享一下利用Rclone Tar或ZIP,實現自動定時打包備份指定目錄文件夾并同步備份到各大網盤。
打包命令如下(提前在根目錄創(chuàng)建好/backup):
tar -czvf /backup/backup$(date %Y%m%d%H%M).tar.gz /opt
以上命令是將文件夾/opt下所有的文件及子文件夾打包到/backup目錄下,并以時間來命名。
解壓命令如下:
tar zxvf /backup/backup20200925.tar.gz -C /opt
以上命令是將壓縮包解壓到/opt目錄下。
加密壓縮如下:
tar zcvf – /opt | openssl des3 -salt -k \’123456\’ -out /backup/backup$(date %Y%m%d%H%M).tar.gz
以上命令是將文件夾/opt下所有的文件及子文件夾打包到/backup目錄下,設置了加密密碼“123456”,并以時間來命名。
加密解壓如下:
openssl des3 -d -k \’123456\’ -salt -in /backup/backup20200925.tar.gz | tar zxvf – -C /opt
以上命令是將壓縮包解壓到/opt目錄下,請?zhí)鎿Q你的密碼。
打包命令如下(提前在根目錄創(chuàng)建好/backup):
zip -q -r /backup/backup$(date %Y%m%d%H%M).zip /opt
以上命令是將文件夾/opt下所有的文件及子文件夾打包到/backup目錄下,并以時間來命名。
解壓命令如下:
unzip /backup/backup20200925.zip -d /opt
以上命令是將壓縮包解壓到/opt目錄下。
加密壓縮如下:
zip -q -r -P\’wzfou123\’ /backup/backup$(date %Y%m%d%H%M).zip /opt
以上命令是將文件夾/opt下所有的文件及子文件夾打包到/backup目錄下,設置了加密密碼“123456”,并以時間來命名。
加密解壓如下:
unzip -P\’wzfou123\’ /backup/backup20200925.zip -d /opt
以上命令是將壓縮包解壓到/opt目錄下,請?zhí)鎿Q你的密碼
rclone 是一個命令行工具,用于 Google Drive 的上傳下載等操作。官網網站:https://rclone.org/
你可以用以下的命令來安裝 rclone,以 RedHat 系舉例,記得要先安裝 unzip 命令。
yum -y install unzip && wget -qO- https://rclone.org/install.sh | bash
然后,運行以下命令開始配置:
rclone config
輸入:n和設置一個名稱。
然后選擇你要備份的網盤,這里以谷歌網盤為演示,id和Secret都不用填寫,直接回車。
然后輸入:1,賦予rclone操作云盤可讀可寫的權限,folder_id和account_file都直接回車,不用填寫。
當設置到 Use auto config? 是否使用自動配置,選 n 不自動配置。然后根據提示用瀏覽器打開 rclone 給出的 URL,點擊接受(Accept)。
然后將瀏覽器上顯示出來的字符串粘貼回命令行里,完成授權,然后退出即可。
在本地根目錄下新建cmd目錄,然后cd cmd,新建一個sh文件。
vim vpsback.sh
復制以下命令:
#!/bin/bash /usr/bin/zip -q -r /backup/backup$(date %Y%m%d%H%M).zip /bw-data /usr/bin/rclone copy –update –verbose –transfers 30 –checkers 8 –contimeout 60s –timeout 300s –retries 3 –low-level-retries 10 –stats 1s \”/backup\” \”wzfoumi:wzfoumima\” echo \”BACKUP DATE:\” $(date \”%Y-%m-%d %H:%M:%S\”) >> /var/log/backup.log
說明:
第一句是將/bw-data打包到指定目錄下。
第二句是利用rclone copy命令,將指定目錄下新增加的文件,同步到Google網盤中,\”wzfoumi:wzfoumima\”是指名稱為wzfoumi的rclone,wzfoumima是谷歌網盤中的文件夾。
第三句是輸入日志,即表示執(zhí)行了一次備份命令。
賦予執(zhí)行權限:
chmod x vpsback.sh
先測試一下從是否可以正確運行:
我們可以看到本地文件夾已經有打包過來的文件。
同時,可以看到網盤中已經有了同步過來的文件了。
添加定時任務,讓腳本每天執(zhí)行一次,更多的關于定時任務設置方法:Linux Crontab命令定時任務基本語法與操作教程。
以下命令是刪除/backup文件夾下30天以前的備份文件:
find /backup -mtime 30 -name \”*.zip\” -exec rm -rf {} \\;
本步驟主要是利用的rclone sync命令,將本地目錄與網盤的文件夾保持一致。注意rclone sync是雙向操作,即兩邊的操作都會對雙方產生影響,請謹慎使用。命令如下:
#!/bin/bash /usr/bin/zip -q -r /backup/backup$(date %Y%m%d%H%M).zip /bw-data /usr/bin/rclone sync -i /backup wzfoumi:wzfoumima –progress /usr/bin/find /backup -mtime 30 -name \”*.zip\” -exec rm -rf {} \\; echo \”BACKUP DATE:\” $(date \”%Y-%m-%d %H:%M:%S\”) >> /var/log/backup.log
總得來說,tar 壓縮率比 zip 高,但是如果加密后,tar 加密的文件會比 zip加密后的文件大,所以請根據你自己的需要來選擇。另外,如果VPS備份使用定時任務不執(zhí)行的話,請注意查看一下路徑是不是有錯誤,同時設置一下環(huán)境變量等。
更多關于云服務器,域名注冊,虛擬主機的問題,請訪問三五互聯官網:www.shinetop.cn