2018年5月8日 22:09:38
linux
第一步配置基礎環境(按照本身的規劃配置並不是每人的環境都一致)web
第一臺服務器(RSYNC服務器):windows
rsync外網地址:10.0.0.41 centos
rsync內網地址:172.16.1.41,網段配置爲172.16.1.0緩存
配置好雙網卡,虛擬機第二塊網卡配置爲 LAN區段bash
第二臺服務器(NFS服務器):服務器
rsync外網地址:10.0.0.31 網絡
rsync內網地址:172.16.1.31,網段配置爲172.16.1.0dom
配置好雙網卡,虛擬機第二塊網卡配置爲 LAN區段ssh
前期基礎優化:
SElinux 關閉
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config |
防火牆關閉
1. /etc/init.d/iptables stop 2. chkconfig iptables --level 35 off 3. sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config |
時間同步:
寫入開機啓動配置文件中 echo "/usr/sbin/ntpdate -u cn.pool.ntp.org >/dev/null 2>&1; /sbin/hwclock -w" >>/etc/rc.d/rc.local 編寫定時任務配置文件,定時同步 vi /etc/crontab */10 * * * * /usr/sbin/ntpdate time.windows.com >/dev/null 2>&1;/sbin/hwclock -w |
更新yum源:
更換yum源 1. 清除yum源緩存 yum clean all 2.備份yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 3.更換 centos 7源 下載新的源: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 4.添加epel源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 5.生成緩存 yum makecache |
精簡開機啓動:
chkconfig|egrep -v "crond|sshd|network|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash |
安裝基礎軟件
yum install lrzsz nmap tree dos2unix nc -y |
配置hosts文件(學習環境優化必備)
cat >/etc/hosts<<EOF 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.1.5 lb01 172.16.1.6 lb02 172.16.1.7 web01 172.16.1.8 web02 172.16.1.9 web03 172.16.1.51 db01 172.16.1.31 nfs01 172.16.1.41 backup 172.16.1.61 m01 172.16.1.62 jumpserver EOF |
激活雙網卡
*###setup的啓動網卡配置中 Controlled by NetworkManager 若是沒法訪問網絡能夠嘗試去掉這個選選項
-----------------基礎環境完成
rsync服務開始:
1. 檢查rsync是否安裝:
rpm -qa rsync
2.添加rsync服務的用戶,管理本地目錄
useradd-s /sbin/nologin -M rsync
3.生成rsyncd.conf 配置文件(默認沒有須要手動建立)
touch /etc/rsyncd.conf
4. 寫入配置到 /etc/rsyncd.conf 文件中(rsync默認配置文件)
默認不存在須要本身建立,而後寫入如下內容
-----------------------------------------------
#created by HQ at 2017
##rsyncd.conf start##
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
#rsync_config
---------------------------------------------------
5. 編寫服務器端密碼配置文件
echo "rsync_backup:123456" >/etc/rsync.password ##服務端須要用戶和密碼,而客戶端僅須要密碼
6. 給建立的密碼文件配置屬性,以避免被其餘用戶查看或修改
chmod 600 /etc/rsync.password
7.建立文件目錄而且受權給rsync用戶(用戶推送數據或被拉取數據)
mkdir /bakcup -p
chown -R rsync.rsync /backup
8.啓動服務而且檢查服務是否啓動
rsync --daemon 服務器配置完成
9.加入到開機啓動文件中,讓其開機啓動運行
echo "/usr/bin/rsync --daemon" >>/etc/rc.local
10 檢查是否成功啓動:
檢查是否成功啓動:lsof -i:873
[root@backup ~]# lsof -i:873 (進程啓動成功,配置完成)
COMMANDPID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync2002 root 4u IPv412746 0t0 TCP *:rsync (LISTEN)
rsync2002 root 5u IPv612747 0t0 TCP *:rsync (LISTEN)
----------------------------
配置完成後檢查是否成功啓動以及可否推送數據
須要用到客戶端來實現推送拉取數據,因此還須要爲客戶端配置
客戶端配置以下:
1. echo '123456' >/etc/rsync.password
2.chmod 600 /etc/rsync.password
客戶端配置完成
測試數據的拉取或推送
客戶端 輸入密碼的方式 拉取服務器數據:
rsync -avz rsync_backup@172.16.1.41::backup /backup
##由於模塊定義的 [backup] = /backup 因此它拉取的數據就是 /bcakup/backup ,第二個backup其實是[backup] 模塊定義的
客戶端 密碼文件的方式 拉取服務器數據
rsync -avz rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password /
## " / " 表明拉取到本地根下,由於backup 這個模塊中定義的就是 /bcakup 因此 即便拉到根目錄下 它拉取的 目錄 /backup 在 根下,若是寫成 /bakcup下.那麼它 /backup/+[backup] 就等於了 /backup/backup,因此最終它會拉取到 /backup/backup . 若是想拉取到/backup目錄下,就只能定義爲 / 根
客戶端 輸入密碼方式 將數據推送到服務器
rsync -avz /backup rsync_backup@172.16.1.41::backup
客戶端 密碼文件方式 將數據推送到服務器
rsync -avz /backup rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
以上就是rsync的數據推拉和使用密碼文件免輸入密碼的方式進行服務器數據備份的方法.
一些小問題的解答:
在客戶端下查看到 backup 這個目錄的 所屬組和主變成了500
[root@nfs01 /]# ls -ld /backup/
drwxr-xr-x 2 500 500 4096 May 8 21:53 /backup/
這是由於 rsync的虛擬用戶緣由 ,他沒有家目錄,只指定了uid=500 還記得前面的建立用戶操做嗎?