在使用該方法進行同步以前須要先在服務的開啓相應服務同時要監聽一個端口(可自定義),默認是監聽873端口,開啓服務以前編輯rsync配置文件「/etc/rsyncd.conf」(將服務添加進去)而後直接使用命令:「rsync --daemon(服務名稱)」進行同步。或者將配置文件寫到一個自定義文件中,使用命令「rsync --configfile」進行同步。
配置完成後客戶端能夠經過指定端口與服務端進行通訊。node
[root@3 grep]# vim /etc/rsyncd.conf port=873 #指定啓動rsync服務的端口,若是不指定,默認爲873端口 log file=/var/log/rsync.log #指定日誌文件 pid file=/var/run/rsyncd.pid #指定pid文件,這個文件的做用涉及服務的啓動、中止等進程操做。 address=192.168.8.125 #指定啓動rsyncd服務的IP。假如你的機器有多個IP,就能夠指定由其中一個啓動rsyncd服務,若是不指定該參數,默認是在所有IP上啓動。 [test] #指定模塊名,裏面內容自定義 path=/tmp/rsync #指定數據存放的路徑 use chroot=true #use chroot=true/false:安全參數,表示在傳輸文件前首先chroot到path參數所指定的目錄下。這樣作的緣由是實現額外的安全防禦,但缺點是須要以roots權限,而且不能備份指向外部的符號鏈接所指向的目錄文件。默認狀況下chroot值爲true,若是你的數據當中有軟鏈接文件,建議設置成false。 max connections=4 #指定最大的鏈接數,默認是0,即沒有限制。 read only=no #read only ture|false:若是爲true,則不能上傳到該模塊指定的路徑下。 list=true #表示當用戶查詢該服務器上的可用模塊時,該模塊是否被列出,設定爲true則列出(此時功能相似於tab),false則隱藏。 uid=root gid=root #指定傳輸文件時以哪一個uid和gid的身份進行。 #auth users=test #指定傳輸時要使用的用戶名 #secrets file=/etc/rsyncd.passwd #指定密碼文件,該參數連同上面的參數若是不指定,則不使用密碼驗證。 #注意:該密碼文件的權限必定要是600。格式:「用戶名:密碼」 hosts allow=192.168.8.129 #表示被容許鏈接該模塊的主機,能夠是IP或者網段,若是是多個,中間用空格隔開。
說明: 當設置了auth users和secrets file後,客戶端連服務端也須要用用戶名密碼了,若想在命令行中帶上密碼,能夠設定一個密碼文件「/etc/pass」,而後執行命令:「 rsync -avL test@192.168.133.130::test/test1/ /tmp/test8/ --password-file=/etc/pass」,其中/etc/pass內容就是一個密碼,權限要改成600(文件內容格式爲:「用戶名:密碼」)。vim
開啓服務: [root@3 grep]# rsync --daemon 檢測服務狀態: [root@3 grep]# ps aux |grep rsync root 9155 0.0 0.0 114644 552 ? Ss 23:22 0:00 rsync --daemon root 9159 0.0 0.0 112664 976 pts/0 S+ 23:23 0:00 grep --color=auto rsync [root@3 grep]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1300/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2262/master tcp 0 0 192.168.8.125:873 0.0.0.0:* LISTEN 9155/rsync tcp6 0 0 :::22 :::* LISTEN 1300/sshd tcp6 0 0 ::1:25 :::* LISTEN 2262/master 添加path的相應目錄: [root@3 grep]# mkdir /tmp/rsync 更改目錄權限: [root@3 grep]# chmod 777 /tmp/rsync
注: 在配置文件中設定path時注意所給予的權限,安全起見不要直接使用root目錄!!!
配置文件中「[]」爲模塊,裏面內容爲模塊名稱,該模塊表明的路徑即爲path指定的路徑。windows
在客戶端進行同步:同步到服務端 [root@3 ~]# rsync -avP /tmp/11.txt 192.168.8.125::test/3 sending incremental file list 11.txt 1148 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1) sent 1218 bytes received 27 bytes 830.00 bytes/sec total size is 1148 speedup is 0.92 將服務端數據同步到本機(客戶端): [root@3 ~]# rsync -avP 192.168.8.125::test/adai002 /tmp/123.txt receiving incremental file list 3 1148 100% 1.09MB/s 0:00:00 (xfer#1, to-check=0/1) sent 45 bytes received 1250 bytes 863.33 bytes/sec total size is 1148 speedup is 0.89 [root@3 ~]# ls /tmp/ 11.txt 123.txt ####################################### 在服務端查看同步結果: [root@1 ~]# ls /tmp/rsync/ 3 完成!
telnet命令用於登陸遠程主機,對遠程主機進行管理。telnet由於採用明文傳送報文,安全性很差,不少Linux服務器都不開放telnet服務,而改用更安全的ssh方式了。安全
語法: telnet [options] [參數]服務器
應用: 檢測端口是否可通訊session
[root@3 ~]# telnet 192.168.8.125 873 Trying 192.168.8.125... Connected to 192.168.8.125. Escape character is '^]'. @RSYNCD: 30.0 ^] #退出該命令時使用Ctrl+],而後輸入quit便可! @ERROR: protocol startup error Connection closed by foreign host.
編輯rsync配置文件,將端口改成port=8730ssh
安裝killall工具:「yum install -y psmisc」。socket
殺死全部rsync進程: [root@3 ~]# killall rsync 啓動: [root@3 ~]# rsync --daemon 檢測: [root@adai003 ~]# !ps ps aux |grep rsync root 3161 0.0 0.0 114644 548 ? Ss 09:09 0:00 rsync --daemon [root@3 ~]# !netstat netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.8.125:8730 0.0.0.0:* LISTEN 3161/rsync
[root@1 ~]# rsync -avP 192.168.8.125::test/adai002 /tmp/123.txt rsync: failed to connect to 192.168.8.125 (192.168.8.125): Connection refused (111) rsync error: error in socket IO (code 10) at clientserver.c(122) [Receiver=3.0.9]
說明: 因未開放873端口,因此此時同步數據會報錯!那麼如何進行同步呢?方法以下:tcp
[root@1 ~]# rsync -avP --port 8730 192.168.8.125::test/1 /tmp/123.txt receiving incremental file list sent 26 bytes received 59 bytes 170.00 bytes/sec total size is 1148 speedup is 13.51
說明: 使用--port選項指定端口號。工具
查看系統硬件相關的日誌。dmesg命令被用於檢查和控制內核的環形緩衝區。kernel會將開機信息存儲在ring buffer中。您如果開機時來不及查看信息,可利用dmesg來查看。開機信息保存在:/var/log/dmesg文件裏。
在該日誌中能夠查看系統有哪些硬件故障。
語法: dmesg [option]
Options:
-c:清除日誌(系統重啓會從新生成)
-n:指定記錄信息的層級
last命令用於顯示用戶最近登陸信息。單獨執行last命令,它會讀取/var/log/wtmp的文件,並把該給文件的內容記錄的登入系統的用戶名單所有顯示出來。
lastb命令用於顯示用戶錯誤的登陸列表,此指令能夠發現系統的登陸異常。單獨執行lastb命令,它會讀取位於/var/log目錄下,名稱爲btmp的文件,並把該文件內容記錄的登入失敗的用戶名單,所有顯示出來。(/var/log/btmp)
>logrotate命令用於對系統日誌進行輪轉、壓縮和刪除,也能夠將日誌發送到指定郵箱。使用logrotate指令,可以讓你輕鬆管理系統所產生的記錄文件。每一個記錄文件均可被設置成每日,每週或每個月處理,也能在文件太大時當即處理。您必須自行編輯,指定配置文件,預設的配置文件存放在/etc/logrotate.conf文件中。
安裝logrotate工具: yum install logrotate crontabs
Logrotate可配置參數,可以使用man命令來查詢:
compress 經過gzip壓縮轉儲之後的日誌 nocompress 不壓縮 copytruncate 用於還在打開中的日誌文件,把當前日誌備份並截斷 nocopytruncate 備份日誌文件可是不截斷 create mode owner group 轉儲文件,使用指定的文件模式建立新的日誌文件 nocreate 不創建新的日誌文件 delaycompress 和 compress 一塊兒使用時,轉儲的日誌文件到下一次轉儲時才壓縮 nodelaycompress 覆蓋 delaycompress 選項,轉儲同時壓縮。 errors address 專儲時的錯誤信息發送到指定的Email 地址 ifempty 即便是空文件也轉儲,這個是 logrotate 的缺省選項。 notifempty 若是是空文件的話,不轉儲 mail address 把轉儲的日誌文件發送到指定的E-mail 地址 nomail 轉儲時不發送日誌文件 olddir directory 轉儲後的日誌文件放入指定的目錄,必須和當前日誌文件在同一個文件系統 noolddir 轉儲後的日誌文件和當前日誌文件放在同一個目錄下 prerotate/endscript 在轉儲之前須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行 postrotate/endscript 在轉儲之後須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行 daily 指定轉儲週期爲天天 weekly 指定轉儲週期爲每週 monthly 指定轉儲週期爲每個月 rotate count 指定日誌文件刪除以前轉儲的次數,0 指沒有備份,5 指保留5 個備份 tabootext [+] list 讓logrotate 不轉儲指定擴展名的文件,缺省的擴展名是:.rpm-orig, .rpmsave, v, 和 ~ size size 當日志文件到達指定的大小時才轉儲,bytes(缺省)及KB(sizek)或MB(sizem)
>Screen是一款由GNU計劃開發的用於命令行終端切換的自由軟件。用戶能夠經過該軟件同時鏈接多個本地或遠程的命令行會話,並在其間自由切換。GNU Screen能夠看做是窗口管理器的命令行界面版本。它提供了統一的管理多個會話的界面和相應的功能。
安裝screen工具:yum install -y screen
# nohup command >[日誌文件] 2>[日誌文件] &
screen語法:
screen [option] [參數]
在每一個screen session 下,全部命令都以 ctrl+a(C-a) 開始:
C-a d -> detach,暫時離開當前session,將目前的 screen session (可能含有多個 windows) 丟到後臺執行,並會回到還沒進 screen 時的狀態,此時在 screen session 裏,每一個 window 內運行的 process (不管是前臺/後臺)都在繼續執行,即便 logout 也不影響。
[root@3 ~]# screen -ls There is a screen on: 3628.pts-0.adai003 (Detached) 1 Socket in /var/run/screen/S-root.
[root@3 ~]# screen -r 3628(screen的id)
[root@adai003 ~]# screen -r 3628
[root@3 ~]# screen -S "test_screen"
說明: 這樣作的目的是方便區分每一個screen任務。