老男孩老師rsync數據同步

1.查看系統版本

[root@59-server ~]# cat /etc/redhat-release 

CentOS release 6.9 (Final)

2.查看系統內核版本

[root@59-server ~]# uname -r

2.6.32-696.1.1.el6.x86_64

3.查看系統是否安裝了rsync

[root@59-server ~]# rpm -qa rsync

rsync-3.0.6-12.el6.x86_64

如果沒有安裝

執行yum -y install rsync

4.編輯rsync服務器的配置文件


[root@59-server ~]# cat /etc/rsyncd.conf

# rsync_config__________________start

# created by weilong 1:09 2017-06-04

# qq 1107114476 blog:http://fengye5689.blog.51cto.com

### rsync.conf start###

uid = root     

gid = root

use chroot = no        

max connections = 200              ###->指定最大鏈接數

timeout = 300                      ###->指定超時時間

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

log file = /var/log/rsyncd.log

[data]                             ###->指定模塊

path = /data

ignore errors

read only = false

list = false

hosts allow = 172.16.0.0/24

hosts deny = 0.0.0.0/32

auth users =rsync_backup

secrets file = /etc/rsync.password

########### rsync_config_________end



5.創建對外要共享的目錄

[root@59-server ~]# mkdir -p /data 

  創建rsync系統用戶

[root@59-server ~]# useradd rsync -s /sbin/nologin   -M

-s  指定用戶shell,

-M  不創建家目錄

6.將data目錄改爲rsync用戶擁有者和所在羣

[root@59-server ~]# chown -R rsync:rsync /data

並查看

[root@59-server ~]# ll -d /data

drwxr-xr-x 9 rsync rsync 4096 Jul  6 04:00 /data

7.創建密碼文件,並查看文件內容

[root@59-server ~]# echo "rsync_backup:weilong"  >/etc/rsync.password      

[root@59-server ~]# cat /etc/rsync.password

rsync_backup:weilong

修改文件權限爲600,並查看文件現在實際權限

[root@59-server ~]# chmod 600 /etc/rsync.password 

[root@59-server ~]# ll /etc/rsync.password

-rw------- 1 root root 21 Jul 19 12:18 /etc/rsync.password

8.查看rsync的服務狀態,並啓動

netstat -lntup | grep rsync

-l 列表

-n  數字

-t  tcp

-u  udp

-p  顯示程序的名字以及PID

[root@59-server ~]# rsync  --daemon

9.查看rsync服務狀態

[root@59-server ~]# lsof -i tcp:873

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

rsync   12141 root    4u  IPv4  40201      0t0  TCP *:rsync (LISTEN)

rsync   12141 root    5u  IPv6  40202      0t0  TCP *:rsync (LISTEN)

[root@59-server ~]# ps -ef | grep rsync

root      12141      1  0 12:29 ?        00:00:00 rsync --daemon

root      12821  12049  0 14:51 pts/0    00:00:00 grep rsync


kill對應的是PID,pkill對應的是command

kill  12141

pkill rsync


10.rsync客戶端的操作,配置rsync賬號及賬號文件權限

[root@60-client ~]# echo "weilong" >/etc/rsync.password

[root@60-client ~]# chmod 600 /etc/rsync.password

11.查看rsync.password文件內容及其權限

[root@60-client ~]#  cat /etc/rsync.password

weilong

[root@60-client ~]# ll /etc/rsync.password

-rw------- 1 root root 8 Jul 19 15:23 /etc/rsync.password



echo "weilong" >/etc/rsync.password

chmod 600 /etc/rsync.password

cat /etc/rsync.password

ll /etc/rsync.password

到了這裏rsync的相關配置已經大致完成了。

12.檢查部署的rsync服務


首先是打包該文件

tar -zcvf   rhce_$(date +%Y%m%d%H%M).tar.gz   /tmp/rhce/

然後是備份到172.16.0.59上

12.1

[root@60-client ~]# rsync -avzP /tmp/rhce_201707210153.tar.gz [email protected]::data  --password-file=/etc/rsync.password

rhce_201707190354.tar.gz

      941718 100%   26.27MB/s    0:00:00 (xfer#1, to-check=0/1)


sent 942122 bytes  received 27 bytes  1884298.00 bytes/sec

total size is 941718  speedup is 1.00


12.2

然後是備份到172.16.0.59上

[root@60-client ~]#  rsync -avzP /tmp/rhce_201707190354.tar.gz rsync://[email protected]/data  --password-file=/etc/rsync.password

sending incremental file list


sent 45 bytes  received 8 bytes  9.64 bytes/sec

total size is 941718  speedup is 17768.26


12.3

scp -P22  -r -p /etc  [email protected]:/tmp/34etc


12.4

df  -h是看磁盤容量的

[root@59-server /]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda2       4.7G  2.9G  1.7G  64% /

tmpfs           238M     0  238M   0% /dev/shm

/dev/sda1       190M   92M   89M  51% /boot

/dev/sda3       2.9G  5.0M  2.7G   1% /usr/local


du -sh /*


13.問題排錯

13.1

rsync: failed to connect to 172.16.0.59: No route to host (113)

表示防火牆沒關,或者服務端的rsync服務沒有啓動

13.2

ERROR: The remote path must start with a module name not a /

表示雙::後面直接接模塊而不是路徑


14.案例講解:

將服務器A上的web網站目錄打包備份,並且用rsync推送到到B服務器上去

使用/var/www/html     /backup


首先應該明確:liunx系統中,使用tar對文件打包時,一般不建議使用絕對路徑。 


通常是在兩臺環境相似的機器上進行同步複製的時候,纔有需要使用絕對路徑進行打包。使用絕對路徑打包時如果不指定相應的參數,tar會產生一句警告信息:”tar: Removing leading `/


’ from member names”,並且實際產生的壓縮包會將絕對路徑轉化爲相對路徑。 

14.1在客戶端的操作


mkdir /backup

cd /backup 

tar -zcvf html_$(date +%F%H%M%S).tar.gz /var/www/html

在/etc/rsync.conf下增加模塊

[backup]

path = /backup

ignore errors

read only = false

list = false

hosts allow = 172.16.0.0/24

hosts deny = 0.0.0.0/32

auth users =rsync_backup

secrets file = /etc/rsync.password

14.2

將backup目錄改爲rsync用戶擁有者和所在羣

[root@59-server ~]# chown -R rsync:rsync /backup

並查看

[root@59-server ~]# ll -d /backup

drwxr-xr-x 9 rsync rsync 4096 Jul  6 04:00 /backup

[root@60-client ~]#  rsync -avzP  html_201707210343.tar.gz [email protected]::backup --password-file=/etc/rsync.password

sending incremental file list

html_201707210343.tar.gz

         234 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)


sent 323 bytes  received 27 bytes  700.00 bytes/sec

total size is 234  speedup is 0.67

-------------------------------------------------------------------------------------------

chown命令詳解

命令格式:


    chown [選項]... [所有者][:[組]] 文件...

必要參數:


    -c 顯示更改的部分的信息


    -f 忽略錯誤信息


    -h 修復符號鏈接


    -R 處理指定目錄以及其子目錄下的所有文件


    -v 顯示詳細的處理信息


    -deference 作用於符號鏈接的指向,而不是鏈接文件本身


  選擇參數:


    --reference=<目錄或文件> 把指定的目錄/文件作爲參考,把操作的文件/目錄設置成參考文件/目錄相同擁有者和羣組


    --from=<當前用戶:當前羣組> 只有當前用戶和羣組跟指定的用戶和羣組相同時才進行改變


    --help 顯示幫助信息


    --version 顯示版本信息

查看服務器內存信息

[root@59-server ~]# cat /etc/cpuinfo

cat: /etc/cpuinfo: No such file or directory

[root@59-server ~]# cat /etc/cpui^Co

[root@59-server ~]# cat /proc/cpuinf

cat: /proc/cpuinf: No such file or directory

[root@59-server ~]# cat /proc/cpuinfo

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 6

model           : 61

model name      : Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz

stepping        : 4

microcode       : 33

cpu MHz         : 2194.949

cache size      : 3072 KB

physical id     : 0

siblings        : 1

core id         : 0

cpu cores       : 1

apicid          : 0

initial apicid  : 0

fpu             : yes

fpu_exception   : yes

cpuid level     : 20

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up 


arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt 


tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ida arat epb xsaveopt pln pts dtherm fsgsbase bmi1 avx2 smep bmi2 invpcid rdseed adx

bogomips        : 4389.89

clflush size    : 64

cache_alignment : 64

address sizes   : 42 bits physical, 48 bits virtual

power management:

lsof命令簡介:

lsof(list open files)是一個列出當前系統打開文件的工具。在Linux環境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。所以,


lsof的功能很強大。一般root用戶才能執行lsof命令,普通用戶可以看見/usr/sbin/lsof命令,但是普通用戶執行會顯示“permission denied”。因此通過lsof工具能夠查看這個列表對系統


監測以及排錯將是很有幫助的。

 

在終端下輸入lsof即可顯示系統打開的文件,因爲 lsof 需要訪問核心內存和各種文件,所以必須以 root 用戶的身份運行它才能夠充分地發揮其功能。

每行顯示一個打開的文件,若不指定條件默認將顯示所有進程打開的所有文件。lsof輸出各列信息的意義如下: 

COMMAND:進程的名稱

PID:進程標識符

USER:進程所有者

FD:文件描述符,應用程序通過文件描述符識別該文件。如cwd、txt等

TYPE:文件類型,如DIR、REG等

DEVICE:指定磁盤的名稱

SIZE:文件的大小

NODE:索引節點(文件在磁盤上的標識)

NAME:打開文件的確切名稱


摘錄總結lsof用法:


lsof filename.txt 顯示開啓文件filename.txt的進程


lsof -i :22 知道22端口現在運行什麼程序


lsof -c abc 顯示abc進程現在打開的文件


lsof -g gid 顯示歸屬gid的進程情況


lsof +d /usr/local/ 顯示目錄下被進程開啓的文件


lsof +D /usr/local/ 同上,但是會搜索目錄下的目錄,時間較長


lsof -d 4 顯示使用fd爲4的進程


lsof -i 用以顯示符合條件的進程情況


ps命令進程和作業管理 ps命令用於報告當前系統的進程狀態。可以搭配kill指令隨時中斷、刪除不必要的程序。ps命令是最基本同時也是非常強大的進程查看命令,使用該命令可以確定有哪


些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等,總之大部分信息都是可以通過執行該命令得到的。

選項 

-a:顯示所有終端機下執行的程序,除了階段作業領導者之外。 

a:顯示現行終端機下的所有程序,包括其他用戶的程序。 

-A:顯示所有程序。 

-c:顯示CLS和PRI欄位。 

c:列出程序時,顯示每個程序真正的指令名稱,而不包含路徑,選項或常駐服務的標示。 

-C<指令名稱>:指定執行指令的名稱,並列出該指令的程序的狀況。 

-d:顯示所有程序,但不包括階段作業領導者的程序。 

-e:此選項的效果和指定"A"選項相同。 

e:列出程序時,顯示每個程序所使用的環境變量。 

-f:顯示UID,PPIP,C與STIME欄位。 

f:用ASCII字符顯示樹狀結構,表達程序間的相互關係。 

-g<羣組名稱>:此選項的效果和指定"-G"選項相同,當亦能使用階段作業領導者的名稱來指定。 

g:顯示現行終端機下的所有程序,包括羣組領導者的程序。 

-G<羣組識別碼>:列出屬於該羣組的程序的狀況,也可使用羣組名稱來指定。 

h:不顯示標題列。 

-H:顯示樹狀結構,表示程序間的相互關係。 

-j或j:採用工作控制的格式顯示程序狀況。 

-l或l:採用詳細的格式來顯示程序狀況。 

L:列出欄位的相關信息。








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章