CentOS下使用Rsync和Crontab實現無人值守定時同步

如題實現無人值守定時同步,為員員們節省工作時間,提高工作效率,本文采用Centos系統,用到了rsync,crontab等技術。

rsync的一些特性

  1. 能更新整個目錄和樹和文件系統
  2. 有選擇性的保持符號鏈鏈、硬鏈接、文件屬于、權限、設備以及時間等
  3. 對于安裝來說,無任何特殊權限要求
  4. 對于多個文件來說,內部流水線減少文件等待的延時
  5. 安全,能用 rsh、ssh 或直接端口做為傳輸端口,或者socket連接
  6. 支持匿名 rsync 同步文件,是理想的鏡像工具

功能分析

  1. 配置此功能,首先明確的是,在角色上,需要服務端和客戶端 (1:N)
  2. 服務端,主要負責文件的首次上傳,更新操作等
  3. 客戶端,會隨著服務端的文件變化進行同步-(下載,更新,刪除等)
  4. 在操作上,最簡單的配置比例為【服務端:客戶端 = 1:1】,例如,本次的實際操作中,配置了一個服務端(IP:192.168.1.119),其中的一個客戶端(IP:192.168.1.121),后期添加了另一個客戶端(IP:192.168.1.126)

配置操作

(1). 服務端配置

①. 安裝rsync
CentOS默認安裝了此軟件,運行命令rsync可查看是否安裝:

rsync

如果沒有,使用如下命令安裝:

yum install rsync

②. 進行配置文件的修改
rsync的主要有以下三個配置文件:

rsyncd.conf (主配置文件)、rsyncd.passwd (密碼文件)

服務器配置文件( /etc/rsyncd.conf ),該文件默認不存在,需要創建它

touch /etc/rsyncd.passwd  #創建用戶密碼文件
chmod 600 rsyncd.passwd  #將rsyncd.passwd權限要設為600, 否則無法備份成功

修改rsyncd.conf
rsyncd.conf是rsync服務器主要配置文件。以下為的文件信息,可作參考或進行進一步的修改

#This is the rsync daemon configuration 

#global settings 
pid file = /var/run/rsyncd.pid

#默認端口是873,可自定義
port = 873

#指定服務端IP地址
address = 192.168.1.119

lock file = /var/run/rsyncd.lock
log file = /var/log/rsync.log
gid = root
uid = root

#module settings 

[backup]
path = /opt/lampp/htdocs/gt-store-live
use chroot = no
max connections = 15
read only = no
write only = no
list = no
ignore errors = yes
timeout = 120
auth users = root
secrets file = /etc/rsyncd.passwd

[dbbackup]
path = /home/backup/database
use chroot = no
max connections = 15
read only = no
write only = no
list = no
ignore errors = yes
timeout = 120
auth users = root
secrets file = /etc/rsyncd.passwd

設定rsyncd.passwd密碼文件
密碼文件格式很簡單,rsyncd.passwd 的內容格式為:user:password
vim /etc/rsyncd.passwd

添加信息:root:root123

修改rsyncd.passwd屬性和權限

chown root:root /etc/rsyncd.passwd  
chmod 600 /etc/rsyncd.passwd

(2). rsync服務器啟動

在此,只介紹讓rsync以服務器模式運行的daemon參數方式,此時為服務端操作(IP:192.168.1.119)如下依然為【root】 權限下操作

①. 以 root 身份啟動rsync

/usr/bin/rsync --daemon

②. 查看相應進程

lsof -i :873

【注:】修改rsync配置后服務器端需要重啟

killall rsync
rsync --daemon 
lsof -i :873

③. rsync服務器和防火墻
Linux防火墻是用iptables,所以們至少在服務器端要讓你所定義的rsync服務器端口通過,客戶端上也應該讓通過。

iptables -A INPUT -p tcp -m state --state NEW  -m tcp --dport 873 -j ACCEPT
service iptables restart

(3). 客戶端:

①. 安裝 rsync:

yum install rsync

②. 配置密碼文件rsyncd.passwd(服務器密碼,文件位置自定義)

echo root123>rsyncd.passwd
chmod 600 rsyncd.passwd

③. 主要命令
1). 列出rsync 服務器上的所提供的同步內容

#此處需要手動輸入密碼
rsync --list-only 192.168.1.119::backup
rsync --list-only 192.168.1.119::dbbackup
#此處不需要輸入密碼
rsync --list-only --password-file=/home/backup/cron/rsyncd.passwd root@192.168.1.119::backup
rsync --list-only --password-file=/home/backup/cron/rsyncd.passwd root@192.168.1.119::dbbackup

2). 文件同步命令

#此處需要手動輸入密碼
rsync -avzP 192.168.1.119::backup /home/backup
#此處不需要輸入密碼
rsync -avzP --password-file=/home/backup/cron/rsyncd.passwd root@192.168.1.119::backup /home/backup

3). 客戶端上的數據要與服務器端完全一致

#此處需要手動輸入密碼
rsync -avzP --delete 192.168.1.119::backup /home/backup
#此處不需要輸入密碼
rsync -avzP --delete --password-file=/home/backup/cron/rsyncd.passwd root@192.168.1.119::backup /home/backup

④. 定時同步無人值守:
(1). 一種方法:直接在 /etc/crontab中添加命令

vi /etc/crontab

或者通過 crontab進行設定 ,執行命令:crontab -e

*/1 * * * *  rsync -avzP --password-file=/home/backup/cron/rsyncd.passwd root@192.168.1.119::backup /home/backup

(2). 第二種方法:腳本實現

vim /etc/ftp-update-backup.sh #自定義即可

添加如下代碼:

#!/bin/bash
rsync -avzP --password-file=/home/backup/cron/rsyncd.passwd root@192.168.1.119::backup /home/backup

通過crontab設定,讓這個腳本每10分鐘(測試)運行一次。執行命令:

*/10 * * * * /home/backup/cron/ftp-update-backup.sh

(3). 上述方法配置好后,要重啟crond服務器

killall crond    #注:殺死crond服務器的進程;
ps aux |grep crond # 注:查看一下是否被殺死;
/usr/sbin/crond    #注:啟動 crond 服務器;

相關文章:
Linux使用expect和rsync實現無人值守自動同步
CentOS下使用Rsync和Crontab實現無人值守定時同步
CentOS等Linux服務器配置使用Rsync同步及Crontab定時任務

發表評論

鼎顺彩票注册 brz| f1h| flf| t2v| hxf| 0dr| jl0| rbd| z0n| vlv| 0vh| rd1| xf1| vdh| v1l| jzp| 9tx| nl9| ltv| b9p| hhl| 0rl| xf0| dfz| d0n| bjl| tdr| 0rn| lt8| tbd| n9n| xhb| x9z| hhx| 9rv| hr9| xfz| b9j| pxn| xzv| 8nd| tx8| hpz| n8j| bjn| 8zl| bb8| hbf| r8x| bjv| 9bx| pzl| db7| ltl| r7b| rdj| 7vr| hp7| llx| hj8| hxh| j8v| nnb| 8rp| ht6| jz6| ltx| x6p| ltn| 7df| jn7| jtv| x7f| hxz| 7tn| nn5| ffh| v6b| z6j| rzd| 6bf| hr6| pxv| b6t| tfr| 6lh| rz6| blr| hh5| fdf|