亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux自動代碼增量備份 結合 全量備份

發布時間:2020-03-23 09:37:31 來源:網絡 閱讀:669 作者:代碼老兵 欄目:編程語言

需求說明

系統環境:linux(centos7)
備份內容:增量備份 結合 全量備份

公司中的生產服務器數據非常重要,所以我們需要通過備份服務器將生產服務器的數據進行備份。

rsync的增量備份,不單單會同步新增的內容,就連刪除的內容也會同步。假如管理代碼人員誤操作將代碼誤刪除,那么備份服務器檢測到備份原的數據產生變化后,也會與其同步,此時生產服務器與備份服務器的代碼都會丟失。

增量備份要求的頻率較高,但在生產與備份服務器之間的網絡資源消耗較少,所以我們可以使用rsync來做增量備份,然后結合在備份服務器本地內做全量備份。
這樣不但減少了生產與備份服務器使用了全量備份的網絡資源開銷,還避免了數據大量丟失的情況。

增量備份

使用linux的rsync功能來增量備份開發代碼

服務器端

  • 安裝rsync

yum -y install rsync
  • 添加配置文件

如果沒有/etc/rsyncd.conf 文件,需要手動創建,如果有直接修改即可。

服務端配置文件/etc/rsyncd.conf 內容如下:

# 在文件最下方添加內容

pid file=/var/rsync/rsync.pid
port=873
lock file=/var/rsync/lock.log
log file=/var/rsync/rsync.log

[py_code]
path=/home/py/
use chroot=no
max connections=10
read only=yes
write only=no
list=no
uid=root
gid=root
auth users=root
secrets file=/etc/rsync_server.pas
strict modes=yes
hosts allow=*
#hosts deny=1.1.1.1
ignore errors=yes
timeout=120 #秒

參數說明:
[py_code] :模塊名,自己定義,可以在下方添加其它模塊。須與客戶端執行命令中的模塊名一致。
path:要備份的服務端文件夾路徑。
hosts allow:允許的客戶端連接IP。
secrets file:服務端密碼文件,內容格式為,用戶名:密碼。
auth users:有權限的用戶名,與密碼文件中用戶名一致。

  • 創建密碼文件

在/etc中創建文件rsync_server.pas,加入用戶名與密碼,內容格式為:用戶名:密碼。

nano /etc/rsync_server.pas

例如,本例中rsync_server.pas文件內容為root:123456

保存文件后,設置密碼文件權限為600

chmod 600 /etc/rsync_server.pas

注意密碼文件只有設置為600權限才可以使用,客戶端的密碼文件也必須為600。

  • 啟動與停止rsync服務
# 啟動rsync
/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
# 停止rsync
ps -ef | grep rsync
kill -9 進程號
rm -rf /var/rsync/rsync.pid

我們測試的時候,一定要保證rsync服務是啟動的

客戶端

1.查看是否安裝rsync,系統一般默認已安裝,安裝方法:yum -y install rsync(同服務端)。
2.在/etc下創建密碼文件rsync_client.pas,注意內容只有密碼,且與服務端密碼文件中的密碼相同。
3.更改密碼文件權限為600。

添加定時任務

在客戶端中添加定時任務,每天幾分鐘執行命令從服務器端拉取數據,進行備份。
直接編輯/etc/crontab文件,添加一條定時任務即可,例如每1分鐘以root身份執行下方的rsync命令,將遠程服務器192.168.1.1中的py_code模塊對應的文件夾(服務端/etc/rsyncd.conf文件中的[py_code]模塊對應的文件夾路徑 )中的內容增量備份到當前服務器的/home/py_backup目錄:


*/1 * * * * root rsync -aqzrtopg --delete rsync://root@192.168.1.1/py_code /home/py_backup --password-file=/etc/rsync_client.pas

命令中的root為服務端密碼文件中配置的用戶名;py_code為服務端/etc/rsyncd.conf文件中的[py_code]模塊名,rsync會通過模塊名找到對應的備份文件路徑;
/home/py_backup是當前服務器文件夾路徑,遠程服務器需要備份的文件夾里的內容會增量備份到這里,所以需要提前建好該目錄;
/etc/rsync_client.pas為當前服務器的密碼文件。
當直接執行上方備份命令時,可以加入-v --progress參數, 即顯示具體備份過程信息,定時任務中則不需要。

此外,使用crontab -e命令也可以直接配置定時任務,但與vi /etc/crontab不同,不同點如下:
1./etc/crontab中的為系統任務,只有root可以設定,而crontab -e設置的定時任務為用戶任務,設定完成后會將任務自動寫入/var/spool/cron/usename文件。
2./etc/crontab中的任務需要指定用戶名,crontab -e不需要。

  1. crontab -e 編輯完后需要重啟服務,systemctl restart crond.service

    • 時間定義說明
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

每天零點執行備份命令
00 00 * * * shell命令

每天零點和12點執行備份命令
00 00,12 * * * shell命令

全量備份

下面要做的是在linux中,將linux文件定時全量備份,且每次備份的文件名不同,還要刪除超過指定時間的歷史備份文件。

將 /home/py 全量備份到/home/back下

cd /home/back   #進入到備份目錄下
nano backup.sh  #創建一個備份腳本,這個腳本也可以放到其他目錄中(自定義)

# backup.sh中寫內容如下:

#!/bin/sh
cp -r /home/py /home/back  #將數據copy到備份目錄,先copy是因為怕在壓縮的過程當中源文件產生變化

tar -czvf /home/back/$(date +%Y%m%d).tar.gz /home/back/py  # 將copy過來的/home/back/py文件目錄進行壓縮,使用日期當做新壓縮文件名字存入到/home/back中;

rm -rf /home/back/py  # 刪除copy過來的文件,保留壓縮過的文件就好

find ./ -mtime +30 -name "*.tar.gz" -exec rm -rf {} \;  # 查找并刪除超過30天的.tar.gz文件,來避免全量備份的歷史文件過多導致占用大量的磁盤空間。

chmod -R 777 backup.sh  # 修改腳本文件的權限,否則會自動執行失敗,提示無權限

crontab -e  # 修改crontab

# 在crontab中寫內容如下:
59 23 * * * /home/back/backup.sh  # 每天23點59分運行backup.sh腳本。可以根據需求修改時間,或定義多個執行計劃。
# 保存退出該文件后重啟crontab服務

systemctl restart crond.service  # 重啟crontab服務
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淮滨县| 温州市| 临沭县| 和静县| 黄大仙区| 长顺县| 高青县| 绥芬河市| 湾仔区| 德保县| 司法| 舟曲县| 衡山县| 赤峰市| 郸城县| 黎平县| 嘉义县| 新密市| 修武县| 沙洋县| 团风县| 那坡县| 吴忠市| 太保市| 黄陵县| 阿克苏市| 鸡泽县| 石狮市| 温州市| 广西| 廉江市| 金溪县| 郑州市| 襄汾县| 贡觉县| 资阳市| 怀宁县| 灵武市| 白山市| 蒙自县| 来安县|