1. 程式人生 > 其它 >8月第一週總結

8月第一週總結

8月第一週周總結

一、scp的使用

遠端複製 scp
引數:
-r  遞迴複製整個目錄

scp -r /tmp [email protected]:/mnt/
本地遞迴複製到遠端

scp -r [email protected]:/mnt /tmp
遠端目錄複製到本地

二、rsync的使用

1.本地傳輸方式:
rsync -avz /etc/rsync.passwd /tmp
2.遠端傳輸方式:
rsync -avz [email protected]:/root /tmp
拉取遠端主機檔案到本地
rsync -avz /etc [email protected]:/root
推送本地檔案到遠端主機
ps : 此方式使用的是遠端主機系統使用者密碼進行傳輸,不安全,普通使用者會出現許可權不足的問題,推薦使用守護模式
3.守護模式
rsync -avz /etc [email protected]::backup --password-file=/etc/rsync.passwd
# 推送本地檔案到IP地址的主機模組上,指定密碼檔案路徑,需要和對面指定的密碼檔案密碼對應。
對面主機密碼檔案設定方式 echo "rsync_backup:123456" > /etc/rsync.passwd,本機密碼設定方式為 echo "123456" > /etc/rsync.passwd

rsync -avz [email protected]::backup /tmp password-file=/etc/rsync.passwd
#拉取遠端主機模組內的檔案,到本地主機。格式和推送類似,調換下本地地址和遠端主機地址即可
ps :  注意模組前面跟的是兩個'::',不能錯

2.1、exclude的使用

exclude 排除不需要的檔案。
指的是進行目錄下所有檔案同步,不同步指定檔案
rsync -az /etc/ rsync_backup@rsync::backup exclude=/etc/rsync.passwd
#排除單個檔案的不同步
rsync -az /etc/ rsync_backup@rsync::backup exclude-from=1.txt
#排除1.txt書寫的檔案,1.txt內是批量檔名,適合批量過濾

2.2、-bwlimit 限速傳輸

rsync -az /etc rsync_backup@rsync::backup -bwlimit=100
限制每秒100M進行傳輸
為了是不搶佔伺服器的執行資源,保證主要程序的執行速度

2.3、delete(無差異同步)

不論增刪改任何,保證兩個目錄下的所有檔案一致
rsync -az /etc rsync_backup@rsync::backup -delete

ps: 拉取時,客戶端資料與服務端資料一致,一服務端資料為準
推送時,服務端資料與客戶端資料一致,一客戶端資料為準

2.4、rsync服務配置

1.下載rsync
2.配置rsync
配置檔案的使用者和使用者組更改,auth_users =rsync_backup 虛擬使用者確認,模組名字和路徑進行更改,根據需求,可以檢視詳細的配置檔案介紹
3.建立rsync使用者,不指定家目錄指定不登陸系統,建立配置檔案設定的共享目錄,授權該目錄的使用者和使用者組
mkdir /backup 
chown -R rsync.rsync /backup
4.服務端虛擬使用者配置 echo "rsync_backup:123456" /etc/rsync.passwd
chmod 600 /backup
5.開啟rsyncd和加入開機自啟
6.客戶端生成密碼檔案 echo "123456" > /etc/rsync.passwd 或者 export RSYNC_BACKUP=123456.第二種方法比較推薦在指令碼中使用

rsync常見報錯解決方法

#  pssword ERROR:auth failed on module backup
(code 5   1649)
原因:虛擬使用者的使用者名稱或者密碼錯誤,或者是服務端檔案許可權不是600
#  ERROR:password file must not be other-accessible
原因:客戶端密碼檔案許可權不是600
#  ERROR:unknown module 'back'
原因:模組名字錯誤
#  ERROR:the remote path must start with a module name not  a /
原因: ::雙冒號後面跟的是模組名字,不是路徑,不需要增加 /
#  rsync:failed t connect to 172.16.1.41:No route to host 
原因:防火牆開啟,沒有配置防火牆規則
#  password :sending incremental file list rewriteip.sh 
# rsync:mkstemp: permission denied
(code 23   1179)
原因:selinux沒有關閉
#  Permission denied (13)
原因:服務端備份目錄許可權不是rsync
#  rsync:faile to connect to 172.16.1.41:connetction refused (code 10   125)
原因:服務端服務沒有開啟
#  read error: connection reset by peer (104)
原因:服務端配置錯誤,導致啟動問題

三、inotify實時監控

1.1、命令

#下載
yum -install -y inotify-tools
inotify -mro format(%Xe %w %f) -e modify,attrib,close_write,create,delete /backup 
比較複雜,後面可以使用sersync進行實時監控,佈置環境也比較簡單,不做過多贅述

四、NFS共享儲存

4.1、NFS佈置步驟

# 服務端
1.關閉防火牆和selinux
systemctl stop firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2.下載nfs
yum install -y nfs-utils rpcbind
3.更改nfs配置檔案
echo "/data/image 172.16.1.0/24(rw,sync,all_quash,anonuid=666,anongid=666)" >> /etc/exports
4.mkdir -p /data/image
chown -R nfsnobody.nfsnobody /data/image
5.開啟nfs.server並新增自啟動
6.驗證nfs配置檔案
cat /var/lib/nfs/etab

# 客戶端
1.關閉防火牆和selinux
systemctl stop firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2.下載nfs-utils rpcbind
3.檢視掛載點
showmount -e 172.16.1.31
4.mkdir -p /data/image
chown -R nfsnobody.nfsnobody /data
5.mount -t nfs 172.16.1.31:data/image /data/image
df -h
6.寫入指令碼,進行開機自動掛載>>/etc/rc.local

五、NFS共享儲存+ Sersync 案例

配置nfs主機:
1.關閉防火牆和selinux
systemctl stop firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2.下載nfs-utils rpcbind
3.建立統一使用者
groupadd www -g 666
useradd www -u 666 -g 666 -M -s /sbin/nologin 
4.mkdie -p /data/image
chown -R www.www /data/image
5.更改nfs配置檔案
echo "/data/image 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)" /etc/exports
6.更改sersync配置檔案
vim /var/local/sersync/confxml.xml
將需要監控的專案全部改為true,監控目錄,監控ip,模組等等
7.啟動rsync和nfs以及rpcbind
8.執行sersync程式進行實時監控

六、SSH遠端管理服務

6.1、ssh連線

ssh [email protected]
#  可以登入包括root在內的所有使用者,對登入資訊有加密

6.2、 telnet連線

telnet 172.16.1.31

下載:yum install -y telnet-server
啟動:systemctl start telnet.socket
#  只能使用普通使用者登入,對登入資訊不加密

6.3、scp遠端傳輸命令

scp -r /etc [email protected]:/date
本地檔案傳輸至遠端
scp -r [email protected]:/data /tmp
遠端檔案拉取到本地
-l 限速,單位是KB

6.4、sftp命令

#   sftp [email protected]
該命令主要是下載上傳檔案
#  get 1.txt /root
將遠端檔案拉到本地目錄下
#   put /root/1.txt /data
將本地檔案推送到遠端主機目錄下

# 相比rz,能上傳目錄,支援大於4G的檔案,支援斷點續傳

6.5、ssh驗證遠端登入

方式一: ssh [email protected]
手動輸入遠端主機密碼
方式二:金鑰
 #  命令:  ssh-keygen
-t   指定金鑰型別(rsa、dsa)預設rsa
# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
手動輸入遠端主機密碼,後續登入可以免密登入主機
方式三:指令碼寫入expect免互動登入
spawn ssh [email protected]
expect {
	"password" {send '123456\r'}
}
expect eof
方式四:
sshpass免互動登入
yum install -y sshpass
sshpass -p 1 ssh [email protected]

問題總結

1.守護程序模式傳遞檔案,需要對面設定rsync配置檔案,同時指定密碼檔案
2.守護程序模式,模組前面跟的是兩個'::',不能錯
3.客戶端和服務端的rsync密碼檔案許可權必須為600
4.建立的備份目錄,使用者和使用者組必須是指定使用者,chown -R進行更改rsyncd.conf配置檔案也需要修改
5.NFS和rsync的使用,必須關閉防火牆和selinux,一定要確認
6./etc/rc.local 開啟自動執行的第一個檔案,可以將指令碼寫入開機後自動執行,但是一定要注意該檔案有可執行許可權。也要檢視它連線檔案的許可權
7.執行 sersync2 -dro confxml.xml不要忘記dro引數