注意:博主使用的系統(tǒng)為:
[root@web01 ~]# uname -a
Linux web01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
已知 4 臺服務器主機名主機對應信息見下表:
服務 | 外網(wǎng) IP(NAT) | 內網(wǎng) IP(NAT) | 主機名 |
web服務器 | 10.0.0.7/24 | 172.16.1.7/24 | web02 |
web服務器 | 10.0.0.8/24 | 172.16.1.8/24 | web01 |
NFS存儲服務器 | 10.0.0.31/24 | 172.16.1.31/24 | nfs01 |
rsync備份服務器 | 10.0.0.41/24 | 172.16.1.41/24 | backup |
1、配置 NFS 服務:
要求:
1)在NFS服務端nfs01上共享/data目錄,允許從NFS客戶端web01、web02上分別掛載共享目錄。
2)當在NFS客戶端web01上的掛載點/data寫入數(shù)據(jù)時,在NFS客戶端web02上也可以刪除或修改。
3)問答題:如何優(yōu)化NFS服務?
l 要求:在backup服務器上配置Rsync數(shù)據(jù)同步服務,從nfs01服務器上可以推送數(shù)據(jù)到backup服務器的/backup目錄
l 具體要求:backup 服務器的備份目錄必須為/backup。
當用戶通過任意臺web服務器將數(shù)據(jù)寫入到NFS服務器nfs01時,同時復制到備份服務器backup。
2.1.1.1 一、查看nfs和rpc的安裝
[root@nfs01 ~]# rpm -qa |grep -E "nfs|rpc"
nfs-utils-1.2.3-75.el6.x86_64
xmlrpc-c-1.16.24-1210.1840.el6.x86_64
xmlrpc-c-client-1.16.24-1210.1840.el6.x86_64
nfs-utils-lib-1.1.5-13.el6.x86_64
rpcbind-0.2.0-13.el6_9.1.x86_64
libtirpc-0.2.1-13.el6_9.x86_64
實例2-1 nfs和rpc服務進程的安裝方法
yum install -y nfs-utils rpcbind
2.1.1.2 二、編寫NFS配置文件
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync)
2.1.1.3 三、創(chuàng)建共享目錄,并且進行權限設定
[root@nfs01 ~]# mkdir /data -p
[root@nfs01 ~]# chown -R nfsnobody.nfsnobody /data/
[root@nfs01 ~]# ll -d /data/
drwxr-xr-x 2 nfsnobody nfsnobody 24576 Oct 17 17:25 /data/
說明:NFS共享目錄管理用戶為nfsnobody,此用戶不用創(chuàng)建;安裝NFS軟件的時候會自動創(chuàng)建
2.1.1.4 四、啟動服務
首先啟動rpc服務
[root@nfs01 ~]# /etc/init.d/rpcbind start
其次啟動nfs服務
[root@nfs01 ~]# /etc/init.d/nfs start
查看可掛載的共享目錄
[root@nfs01 ~]# showmount -e 10.0.0.31
Export list for 10.0.0.31:
/data 172.16.1.0/24
2.1.1.5 五、設置為開機自啟動
chkconfig rpcbind on
chkconfig nfs on
思路:兩臺連接的web服務器上同時創(chuàng)建相同UID的www用戶,NFS服務器上配置anonuid和anongid參數(shù),設置不讓全部用戶進行映射,只映射root用戶
配置文件修改:
[root@nfs01 ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,no_all_squash,root_squash,anonuid=666,anongid=666)
授權共享目錄屬主和屬組為www權限
[root@nfs01 data]# chown www.www /data/
[root@nfs01 data]# ll -d /data/
drwxr-xr-x 2 www www 24576 Oct 18 17:25 /data/
平滑重啟nfs服務
[root@nfs01 data]# /etc/init.d/nfs reload
2.1.3.1 一、rsync軟件的安裝
[root@nfs01 tmp]# rpm -qa rsync
rsync-3.0.6-12.el6.x86_64
2.1.3.2 二、建立認證文件,并改600權限
[root@nfs01 data]# echo "oldboy123" >/etc/rsync.password
[root@nfs01 data]# chmod 600 /etc/rsync.password
[root@nfs01 data]# ll -d /etc/rsync.password
-rw------- 1 root root 10 Oct 18 18:52 /etc/rsync.password
2.1.3.3 三、推送測試
nfs服務器:推送
[root@nfs01 data]# rsync -avz ts.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
ts.txt
sent 63 bytes received 27 bytes 180.00 bytes/sec
total size is 0 speedup is 0.00
backup服務器:查看
[root@backup backup]# ll
total 8
drwxr-xr-x 2 rsync rsync 4096 Oct 18 00:00 172.16.1.31
drwxr-xr-x 2 rsync rsync 4096 Oct 13 20:03 172.16.1.8
-rw-r--r-- 1 rsync rsync 0 Oct 18 18:53 ts.txt
2.2.1.1 一、確認nfs和rpc的安裝
[root@web01 ~]# rpm -qa|grep -E "nfs|rpc"
nfs-utils-1.2.3-75.el6.x86_64
xmlrpc-c-1.16.24-1210.1840.el6.x86_64
xmlrpc-c-client-1.16.24-1210.1840.el6.x86_64
nfs-utils-lib-1.1.5-13.el6.x86_64
rpcbind-0.2.0-13.el6_9.1.x86_64
libtirpc-0.2.1-13.el6_9.x86_64
2.2.1.2 二、啟動rpcbind服務
[root@web01 ~]# /etc/init.d/rpcbind start
2.2.1.3 三、檢查可掛載的共享目錄
[root@web01 ~]# showmount -e 10.0.0.31
Export list for 10.0.0.31:
/data 172.16.1.0/24
2.2.1.4 四、掛載共享目錄
[root@web01 ~]# mount -t nfs 172.16.1.31:/data/ /mnt/
[root@web01 ~]# ll -d /mnt/
drwxr-xr-x 2 nfsnobody nfsnobody 24576 Oct 17 2017 /mnt/
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.5G 6.9G 18% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
172.16.1.31:/data/ 8.8G 1.5G 6.9G 18% /mnt
2.2.1.5 五、測試
web01服務器:
[root@web01 ~]# cd /mnt/
[root@web01 mnt]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 18 2017 oldboy.txt
[root@web01 mnt]# touch web01.txt
[root@web01 mnt]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 18 2017 oldboy.txt
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 18 2017 web01.txt
nfs存儲服務器:
[root@nfs01 data]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 18 17:23 oldboy.txt
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 18 17:25 web01.txt
2.2.1.6 六、設置開機自動掛載
利用/etc/fstab文件結合netfs服務,實現(xiàn)自動掛載
先編輯/etc/fstab文件
172.16.1.31:/data/r /data/r nfs defaults 0 0
在開機自啟動netfs服務
[root@web01 mnt]# chkconfig netfs on
[root@web01 mnt]# chkconfig |grep "netfs"
netfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2.2.2.1 創(chuàng)建www用戶設置uid為666
[root@web01 mnt]# useradd -u 666 www
[root@web01 mnt]# id www
uid=666(www) gid=666(www) groups=666(www)
2.2.2.2 重新掛載
[root@web01 ~]# umount /mnt/
[root@web01 ~]# umount /mnt/
umount: /mnt/: not mounted
[root@web01 ~]# mount -t nfs 172.16.1.31:/data/ /mnt/
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.5G 6.9G 18% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
172.16.1.31:/data/ 8.8G 1.5G 6.9G 18% /mnt
2.2.2.3 測試
root用戶測試:可以進行操作
[root@web01 mnt]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 18 2017 oldboy.txt
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 18 2017 web01.txt
[root@web01 mnt]# \rm -f web01.txt
[root@web01 mnt]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 18 2017 oldboy.txt
www用戶測試:可以進行操作
[www@web01 mnt]$ touch web01.txt
[www@web01 mnt]$ ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 18 2017 oldboy.txt
-rw-rw-r-- 1 www www 0 Oct 18 2017 web01.txt
其他用戶測試:不可操作(提升了安全性)
[root@web01 ~]# useradd lyq
[root@web01 ~]# echo "123456"|passwd --stdin lyq
Changing password for user lyq.
passwd: all authentication tokens updated successfully.
[root@web01 ~]# su - lyq
[lyq@web01 ~]$ cd /mnt/
[lyq@web01 mnt]$ \rm -f web01.txt
rm: cannot remove `web01.txt': Permission denied
2.3.1.1 一、確認nfs和rpc安裝
[root@web02 ~]# yum install -y nfs-utils rpcbind
[root@web02 ~]# rpm -qa |egrep "nfs|rpcbind"
nfs-utils-1.2.3-75.el6.x86_64
nfs-utils-lib-1.1.5-13.el6.x86_64
rpcbind-0.2.0-13.el6_9.1.x86_64
2.3.1.2 二、啟動rpcbind服務
[root@web02 ~]# /etc/init.d/rpcbind start
Starting rpcbind: [ OK ]
2.3.1.3 三、檢查可掛載的共享目錄
[root@web02 ~]# showmount -e 10.0.0.31
Export list for 10.0.0.31:
/data 172.16.1.0/24
2.3.1.4 四、掛載共享目錄
[root@web02 ~]# mount -t nfs 172.16.1.31:/data/ /mnt/
[root@web02 ~]# ll -d /mnt/
drwxr-xr-x 2 nfsnobody nfsnobody 24576 Oct 17 17:25 /mnt/
[root@web02 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.5G 6.9G 18% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
172.16.1.31:/data/ 8.8G 1.5G 6.9G 18% /mnt
2.3.1.5 五、測試
web02服務器:
[root@web02 ~]# cd /mnt/
[root@web02 mnt]# ll
total 0
[root@web02 mnt]# touch oldboy.txt
[root@web02 mnt]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 18 17:23 oldboy.txt
nfs存儲服務器:
[root@nfs01 ~]# cd /data/
[root@nfs01 data]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 18 17:23 oldboy.txt
2.3.1.6 六、設置開機自動掛載
利用/etc/fstab文件結合netfs服務,實現(xiàn)自動掛載
先編輯/etc/fstab文件
172.16.1.31:/data/r /data/r nfs defaults 0 0
在開機自啟動netfs服務
[root@web02 mnt]# chkconfig netfs on
[root@web02 mnt]# chkconfig |grep "netfs"
netfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2.3.2.1 創(chuàng)建www用戶,設置uid為666
[root@web02 mnt]# useradd -u 666 www
[root@web02 mnt]# id www
uid=666(www) gid=666(www) groups=666(www)
2.3.2.2 重新掛載
[root@web02 ~]# umount /mnt
[root@web02 ~]# umount /mnt
umount: /mnt: not mounted
[root@web02 ~]# mount -t nfs 172.16.1.31:/data/ /mnt
[root@web02 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.5G 6.9G 18% /
tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
172.16.1.31:/data/ 8.8G 1.5G 6.9G 18% /mnt
2.3.2.3 測試
root用戶測試:可以操作
[root@web02 mnt]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Oct 18 17:23 oldboy.txt
-rw-rw-r-- 1 www www 0 Oct 18 18:26 web01.txt
[root@web02 mnt]# \rm -f oldboy.txt
[root@web02 mnt]# ll
total 0
-rw-rw-r-- 1 www www 0 Oct 18 18:26 web01.txt
www用戶測試:可以操作
[www@web02 mnt]$ touch web02.txt
[www@web02 mnt]$ ll
total 0
-rw-rw-r-- 1 www www 0 Oct 18 18:26 web01.txt
-rw-rw-r-- 1 www www 0 Oct 18 18:32 web02.txt
其他用戶:不可以操作
[root@web02 ~]# useradd lyq
[root@web02 ~]# echo "123456"|passwd --stdin lyq
Changing password for user lyq.
passwd: all authentication tokens updated successfully.
[root@web02 ~]# su - lyq
[lyq@web02 ~]$ cd /mnt
[lyq@web02 mnt]$ \rm -f web02.txt
rm: cannot remove `web02.txt': Permission denied
要求:在backup服務器上配置Rsync數(shù)據(jù)同步服務,從nfs01服務器上可以推送數(shù)據(jù)到backup服務器的/backup目錄
具體要求:backup 服務器的備份目錄必須為/backup。
[root@backup ~]# rpm -qa |grep rsync
rsync-3.0.6-12.el6.x86_64
默認沒有這個文件
[root@backup ~]# vim /etc/rsyncd.conf
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "backup dir by oldboy"
path = /backup
[root@backup ~]# useradd -s /sbin/nologin rsync -M
[root@backup ~]# id rsync
uid=501(rsync) gid=501(rsync) groups=501(rsync)
[root@backup ~]# mkdir -p /backup
[root@backup ~]# chown rsync.rsync /backup/
[root@backup ~]# ll -d /backup/
drwxr-xr-x 4 rsync rsync 4096 Oct 14 10:03 /backup/
[root@backup ~]# echo "rsync_backup:oldboy123" >/etc/rsync.password
[root@backup ~]# cat /etc/rsync.password
rsync_backup:oldboy123
[root@backup ~]# chmod 600 /etc/rsync.password
[root@backup ~]# ll /etc/rsync.password
-rw------- 1 root root 23 Oct 18 18:46 /etc/rsync.password
[root@backup ~]# rsync --daemon
[root@backup ~]# ps -ef |grep rsync
root 32060 1 0 18:47 ? 00:00:00 rsync --daemon
root 32062 30842 0 18:48 pts/0 00:00:00 grep --color=auto rsync
[root@backup ~]# netstat -lntup |grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 32060/rsync
tcp 0 0 :::873 :::* LISTEN 32060/rsync
a 將軟件上傳到服務器
rz -E
b 解壓軟件
[root@nfs01 tools]# unzip sersync_installdir_64bit.zip
軟件結構
[root@nfs01 tools]# tree sersync_installdir_64bit
sersync_installdir_64bit
└── sersync
├── bin
│ └── sersync
├── conf
│ └── confxml.xml
└── logs
c 移動
[root@nfs01 ~]# tree /usr/local/sersync/
/usr/local/sersync/
├── bin
│ └── sersync
├── conf
│ └── confxml.xml
└── logs
3 directories, 2 files
[root@nfs01 ~]# vim /usr/local/sersync/conf/confxml.xml
24 <localpath watch="/data">
25 <remote ip="172.16.1.41" name="backup"/>
26 <!--<remote ip="192.168.8.39" name="tongbu"/>-->
27 <!--<remote ip="192.168.8.40" name="tongbu"/>-->
28 </localpath>
29 <rsync>
30 <commonParams params="-az"/>
31 <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
32 <userDefinedPort start="false" port="874"/><!-- port=874 -->
33 <timeout start="false" time="100"/><!-- timeout=100 -->
34 <ssh start="false"/>
35 </rsync>
[root@nfs01 ~]# cd /usr/local/sersync/
[root@nfs01 sersync]# cd bin
[root@nfs01 bin]# ll
total 1768
-rw-r--r-- 1 root root 1810128 Oct 26 2011 sersync
[root@nfs01 bin]# chmod +x sersync
[root@nfs01 bin]# ll
total 1768
-rwxr-xr-x 1 root root 1810128 Oct 26 2011 sersync
啟動命令:(參數(shù)o一定要在參數(shù)最后)
[root@nfs01 bin]# ./sersync -dro /usr/local/sersync/conf/confxml.xml
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
option: -d run as a daemon
option: -r rsync all the local files to the remote servers before the sersync work
option: -o config xml name: /usr/local/sersync/conf/confxml.xml
daemon thread num: 10
parse xml config file
host ip : localhost host port: 8008
daemon start,sersync run behind the console
use rsync password-file :
user is rsync_backup
passwordfile is /etc/rsync.password
config xml parse success
please set /etc/rsyncd.conf max connections=0 Manually
sersync working thread 12 = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads)
Max threads numbers is: 22 = 12(Thread pool nums) + 10(Sub threads)
please according your cpu ,use -n param to adjust the cpu rate
------------------------------------------
rsync the directory recursivly to the remote servers once
working please wait...
execute command: cd /data && rsync -az -R --delete ./ rsync_backup@172.16.1.41::nfsbackup --password-file=/etc/rsync.password >/dev/null 2>&1
run the sersync:
watch path is: /data
web02服務器:
[root@web02 mnt]# ll
total 0
-rw-r--r-- 1 www www 0 Oct 18 19:18 ceshi.txt
-rw-rw-r-- 1 www www 0 Oct 18 18:26 web01.txt
-rw-rw-r-- 1 www www 0 Oct 18 18:32 web02.txt
[root@web02 mnt]# \rm -f ./*
[root@web02 mnt]# ll
total 0
nfs服務器:
[root@nfs01 bin]# inotify wd:1 name:ceshi.txt mask:512
cd /data && rsync -az -R --delete ./ --include="ceshi.txt" --exclude=* rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
inotify wd:1 name:web01.txt mask:512
inotify wd:1 name:web02.txt mask:512
cd /data && rsync -az -R --delete ./ --include="web01.txt" --exclude=* rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
cd /data && rsync -az -R --delete ./ --include="web02.txt" --exclude=* rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
backup服務器:
[root@backup backup]# ll
total 0
-rw-r--r-- 1 rsync rsync 0 Oct 18 19:18 ceshi.txt
-rw-rw-r-- 1 rsync rsync 0 Oct 18 18:26 web01.txt
-rw-rw-r-- 1 rsync rsync 0 Oct 18 18:32 web02.txt
[root@backup backup]# ll
total 0
[root@nfs01 data]# yum install -y inotify-tools
[root@nfs01 data]# rpm -ql inotify-tools
/usr/bin/inotifywait
/usr/bin/inotifywatch
4.2.2 進行監(jiān)控測試
創(chuàng)建事件(create)
創(chuàng)建文件監(jiān)控事件:
/data/ CREATE oldboy.txt
/data/ OPEN oldboy.txt
/data/ ATTRIB oldboy.txt
/data/ CLOSE_WRITE,CLOSE oldboy.txt
編寫腳本:inotify.sh
#!/bin/bash
inotifywait -mrq /data --format "%w%f" -e create,delete,moved_to,close_write|while read line
do
rsync -az --delete /data/ rsync_backup@172.16.1.41::nfsbackup --password-file=/etc/rsync.password
done
[root@nfs01 data]# sh /server/scripts/inotify.sh &
設置腳本開機自啟動
要求:每天晚上00點整在Web服務器上打包備份系統(tǒng)配置文件、網(wǎng)站程序目錄及訪問日志并通過rsync命令推送備份服務器 backup上備份保留(備份思路可以是先在本地按日期打包,然后再推到備份服務器 backup上),NFS存儲服務器同Web服務器,實際工作中就是全部的服務器。
具體要求:
1)所有服務器的備份目錄必須都為/backup。
2)要備份的系統(tǒng)配置文件包括但不限于:
a.定時任務服務的配置文件(/var/spool/cron/root)(適合 web 和 nfs 服務器)。
b.開機自啟動的配置文件(/etc/rc.local)(適合 web 和 nfs 服務器)。
c.日常腳本的目錄 (/server/scripts)。
d.防火墻 iptables 的配置文件(/etc/sysconfig/iptables)。
e.自己思考下還有什么需要備份呢?
3)Web 服務器站點目錄假定為(/var/html/www)。
4)Web 服務器 A 訪問日志路徑假定為(/app/logs)
5)Web 服務器保留打包后的 7 天的備份數(shù)據(jù)即可(本地留存不能多于7天,因為太多硬盤會滿)
6)備份服務器上,保留每周一的所有數(shù)據(jù)副本,其它要保留 6個月的數(shù)據(jù)副本。
7)備份服務器上要按照備份數(shù)據(jù)服務器的內網(wǎng)IP為目錄保存?zhèn)浞?,備份的文件按照時間名字保存。
8)*需要確保備份的數(shù)據(jù)盡量完整正確,在備份服務器上對備份的數(shù)據(jù)進行檢查,把備份的成功及失敗結果信息發(fā)給系統(tǒng)管理員郵箱中。
web01服務器:
[lyq@web01 mnt]$ ll -d /backup/
drwxr-xr-x 3 root root 4096 Oct 13 20:10 /backup/
web02:
[root@web02 ~]# ll -d /backup/
drwxr-xr-x 2 root root 4096 Oct 18 19:49 /backup/
nfs
[root@nfs01 backup]# cd /backup/
[root@nfs01 backup]#
web01:
[root@web01 ~]# tar zchf /backup/sys_backup_`date +%F_%w`.tar.gz /var/spool/cron/root /etc/rc.local /server/scripts/ /etc/sysconfig/iptables ##因為/etc/rc.local文件是軟連接文件所以加參數(shù)-h
tar: Removing leading `/' from member names
[root@web01 backup]# ll
total 4
-rw-r--r-- 1 root root 1385 Oct 16 20:28 sys_backup_2017-10-16_1.tar.gz
web02:
[root@web02 ~]# tar zchf /backup/sys_backup_`date +%F_%w`.tar.gz /var/spool/cron/root /etc/rc.local /server/scripts/ /etc/sysconfig/iptables ##因為/etc/rc.local文件是軟連接文件所以加參數(shù)-h
tar: Removing leading `/' from member names
[root@web02 ~]# cd /backup/
[root@web02 backup]# ll
total 4
-rw-r--r-- 1 root root 746 Oct 18 19:55 sys_backup_2017-10-18_3.tar.gz
nfs[root@nfs01 backup]# tar zchf /backup/sys_backup_`date +%F_%w`.tar.gz /var/spool/cron/root/etc/rc.local /server/scripts/ /etc/sysconfig/iptables ##因為/etc/rc.local是軟鏈接,所以加一個h參數(shù)
tar: Removing leading `/' from member names
web01:
[root@web01 backup]# rsync -avz sys_backup_2017-10-16_1.tar.gz rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
sent 51 bytes received 8 bytes 118.00 bytes/sec
total size is 1385 speedup is 23.47
web02:
[root@web02 backup]# vim /etc/rsync.password
oldboy123
[root@web02 backup]# chmod 600 /etc/rsync.password
[root@web02 backup]# rsync -avz sys_backup_2017-10-18_3.tar.gz rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
sys_backup_2017-10-18_3.tar.gz
sent 841 bytes received 27 bytes 1736.00 bytes/sec
total size is 746 speedup is 0.86
nfs
[root@nfs01 backup]# rsync -avz /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
./
sys_backup_2017-10-14_6.tar.gz
sent 842 bytes received 30 bytes 1744.00 bytes/sec
total size is 730 speedup is 0.84
backup服務器:
[root@backup backup]# ll
total 8
-rw-r--r-- 1 rsync rsync 1385 Oct 16 20:28 sys_backup_2017-10-16_1.tar.gz
-rw-r--r-- 1 rsync rsync 746 Oct 18 19:55 sys_backup_2017-10-18_3.tar.gz
web01:
[root@web01 backup]# find /backup/ -type f -mtime +7 -name "*.tar.gz" |xargs \rm -f
web02:
[root@web02 backup]# find /backup/ -type f -mtime +7 -name "*.tar.gz" |xargs \rm -f
nfs
[root@nfs01 backup]# find /backup/ -type f -mtime +7 -name "*.tar.gz" |xargs \rm -f
web01:
[root@web01 backup]# md5sum sys_backup_2017-10-16_1.tar.gz >/backup/finger.txt
[root@web01 backup]# md5sum -c finger.txt
sys_backup_2017-10-16_1.tar.gz: OK
web02:
[root@web02 backup]# md5sum sys_backup_2017-10-18_3.tar.gz >/backup/finger.txt
[root@web02 backup]# md5sum -c finger.txt
sys_backup_2017-10-18_3.tar.gz: OK
[root@nfs01 backup]# md5sum sys_backup_2017-10-14_6.tar.gz >/backup/finger.txt
[root@nfs01 backup]# md5sum -c finger.txt
sys_backup_2017-10-14_6.tar.gz: OK
[root@web01 backup]# vim /server/scripts/backup.sh
Backup="/backup"
Host_IP=`hostname -i`
Date_inof=`date +%F_%w -d "-1day"` #因為要求晚上12點備份,如果不減一天,就是12點后一天,這樣的話備份的文件就得減一天
#創(chuàng)建備份目錄
mkdir -p Backup/Backup/Host_IP #按要求,在/backup下創(chuàng)建以備份服務器ip做名字的目錄,好區(qū)分不同服務器發(fā)來的數(shù)據(jù)
#打包備份
cd /
tar zchf Backup/Backup/Host_IP/sys_backup_${Date_inof}.tar.gz var/spool/cron/root etc/rc.local server/scripts/ etc/sysconfig/i
ptables #因為/etc/rc.local是軟連接,所以加一個h參數(shù)
tar zcf Backup/Backup/Host_IP/www_${Date_inof}.tar.gz var/html/www/ app/logs/
#刪除大于7天的數(shù)據(jù)
find $Backup -type f -mtime +7 -name "*.tar.gz" |xargs \rm -f
#利用md5sum指紋進行檢驗
md5sum Backup/Backup/Host_IP/sys_backup_Dateinof.tar.gzDateinof.tar.gzBackup/Host_IP/www_Host_IP/www_{Date_inof}.tar.gz >Backup/Backup/Host_IP/finger.
txt
#推送數(shù)據(jù)
rsync -az Backup/Backup/Host_IP rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
[root@web02 backup]# cat /server/scripts/backup.sh
#參數(shù)
Backup="/backup"
Host_IP=`hostname -i`
Date_inof=`date +%F_%w -d "-1day"` #因為要求晚上12點備份,如果不減一天,就是12點后一天,這樣的話備份的文件就得減一天
#1.備份目錄創(chuàng)建
mkdir -p Backup/Backup/Host_IP
#2.打包備份配置文件
cd /
tar zchf Backup/Backup/Host_IP/sys_backup_${Date_inof}.tar.gz var/spool/cron/root etc/rc.local server/scripts/ etc/sysconfig/iptables
tar zcf Backup/Backup/Host_IP/www_${Date_inof}.tar.gz var/html/www/ app/logs/
#3.刪除大于7天的數(shù)據(jù)
find $Backup -type f -mtime +7 -name "*.tar.gz" |xargs \rm -f
#4.指紋驗證信息
md5sum Backup/Backup/Host_IP/sys_backup_Dateinof.tar.gzDateinof.tar.gzBackup/Host_IP/www_Host_IP/www_{Date_inof}.tar.gz >Backup/Backup/Host_IP/finger.txt
#5.推送數(shù)據(jù)
rsync -az Backup/Backup/Host_IP rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
[root@nfs01 data]# cat /server/scripts/backup.sh
#參數(shù)
Backup="/backup"
Host_IP=`hostname -i`
Date_inof=`date +%F_%w -d "-1day"` #因為要求晚上12點備份,如果不減一天,就是12點后一天,這樣的話備份的文件就得減一天
#創(chuàng)建備份目錄
mkdir -p Backup/Backup/Host_IP #按要求,在/backup下創(chuàng)建以備份服務器ip做名字的目錄,好區(qū)分不同服務器發(fā)來的數(shù)據(jù)
#打包備份
cd /
tar zchf Backup/Backup/Host_IP/sys_backup_${Date_inof}.tar.gz var/spool/cron/root etc/rc.local server/scripts/ etc/sysconfig/iptables #因為/etc/rc.local是軟連接,所以加一個h參數(shù)
#刪除大于7天的數(shù)據(jù)
find $Backup -type f -mtime +7 -name "*.tar.gz" |xargs \rm -f
#利用md5sum指紋進行檢驗
md5sum Backup/Backup/Host_IP/sys_backup_Dateinof.tar.gz>Dateinof.tar.gz>Backup/$Host_IP/finger.txt
#推送數(shù)據(jù)
rsync -az Backup/Backup/Host_IP rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
[root@web01 backup]# crontab -l
#time sync by oldboy at 2010-2-1
*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1
#backup
00 00 * * * /bin/sh /server/scripts/backup.sh &>/dev/null
[root@web02 backup]# crontab -l
#time sync by oldboy at 2010-2-1
*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1
#backup
00 00 * * * /bin/sh /server/scripts/backup.sh &>/dev/null
[root@nfs01 data]# crontab -l
#time sync by oldboy at 2010-2-1
*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1
#backup
00 00 * * * /bin/sh /server/scripts/backup.sh &>/dev/null
[root@backup 172.16.1.8]# md5sum -c finger.txt
/backup/172.16.1.8/sys_backup_2017-10-12_4.tar.gz: OK
/backup/172.16.1.8/www_2017-10-12_4.tar.gz: OK
/backup/172.16.1.8/logs_2017-10-12_4.tar.gz: OK
實例5-1 郵件配置:
第一步、先對郵件服務的配置文件進行備份
[root@backup backup]# cp /etc/mail.rc{,.bak}
第二步、修改郵件服務配置文件
添加內容到最后就可以:
set from=zxpo@163.com smtp=smtp.163.com smtp-auth-user=zxpo smtp-auth-password=此處寫授權密碼 smtp-auth=login
第三步、進行服務的啟動
[root@backup backup]# /etc/init.d/postfix restart
Shutting down postfix: [ OK ]
Starting postfix: [ OK ]
第四步、發(fā)送郵件進行測試
[root@backup backup]# echo "miss" |mail -s "ccc" 110@qq.com
[root@backup backup]# find /backup/ -type f -mtime +180 ! -name "*_1.tar.gz"|xargs \rm -f
[root@backup backup]# vim /server/scripts/check.sh
#指紋驗證
find /backup -type f -name "finger.txt" |xargs md5sum -c >/tmp/cyq_check.txt
#發(fā)送郵件信息
mail -s "Ccc" 110@qq.com </tmp/ccc_check.txt
#刪除180天以前數(shù)據(jù),保留所有周一數(shù)據(jù)
find /backup/ -type f -mtime +180 ! -name "*_1.tar.gz"|xargs \rm -f
[root@backup backup]# crontab -e
#backup因為要等客戶端晚上12點推送過來數(shù)據(jù)后在進行檢查所以定時時間一定要在晚上12點以后
00 02 * * * /bin/sh /server/scripts/check.sh &>/dev/null