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