1. 程式人生 > >Linux20180515 rsync syslog screen

Linux20180515 rsync syslog screen

rsync screen log

5月15日任務

10.32/10.33 rsync通過服務同步
10.34 linux系統日誌
10.35 screen工具

擴展
1. Linux日誌文件總管logrotate http://linux.cn/article-4126-1.html
2. xargs用法詳解 http://blog.csdn.net/zhangfn2011/article/details/6776925



技術分享圖片



不是通過ssh 而是通過服務的方式同步 這樣就需要開啟一個服務,cs架構,客戶端,服務端。 服務端開啟一個服務,監聽一個端口默認873,而且可以自定義。客戶端在服務器端開啟以後就可以通過873端口傳送服務以及數據。

啟動服務之前要編輯配置文件,默認的地址是在 /etc/rsyncd.conf .如果寫到別的地方,開啟服務的時候要寫上新路徑

啟動服務 rsybc --daemon


命令格式:

rsync -av 當前需要同步的文件 ip::模塊名路徑/文件名 模塊名就是配置文件裏的[]中間的那個test

rsync -avp /tmp/1.passwd 192.168.202.123::test/from02.passwd

技術分享圖片

解釋一下上述的設置。

port是端口

log 日誌文件

pid

address 是服務端的地址

[test]是模塊名,隨便起,在客戶端的時候可以用來寫在命令中


以下是一個案例:

aming1的ip 192.168.202.123 這個機器設置為服務器端 設置了873端口 以及log 配置 路徑等。

aming2的IP192.18.202.250 這個機器設置為客戶端 然後需要從客戶端將一個文件同步到服務器端。


  1. 首先在服務器端配置好配置文件,/etc/rsyncd.conf

  2. 啟動服務 rsync --daemon

  3. 檢查以下這個服務是否啟動 ps aux | grep rsync 查看進程 netstat -lntp 檢查端口 873

    技術分享圖片

4. 然後按照配置文件中的路徑,給接受路徑777權限

技術分享圖片

5. 在aming2機器上執行同步命令

rsync -avp /tmp/1.passwd 192.168.202.123::test/from02.passwd

passwd 是要傳輸的文件 雙冒號後面是模塊名 後面跟新文件的名字

6. 出現了error

技術分享圖片

7. 檢查錯誤。ping可以通,網絡連接沒有問題。然後檢查端口,使用命令telnet ip 端口,ok是端口的問題。iptables的問題,所以要停掉firewalld服務。systemctl stop firewalld 關閉規則,兩邊都要。

技術分享圖片

8 重新執行傳輸命令,會要求輸入密碼,密碼在配置文件中有定義,auth secrets 路徑, 可以暫時先關閉。

9 執行,成功。

技術分享圖片

技術分享圖片



技術分享圖片

技術分享圖片

來說說配置文件中的含義:

port=873-----------默認端口,不寫的話就是873

log file=/var/log/rsync.log--------自定義日誌文件

pid file=/var/run/rsyncd.pid------- 指定pid文件,這個文件的作用涉及服務的啟動,停止等進程管理操作。

address=192.168.133.130 ----------指定啟動rsync服務的IP,多個ip可以指定其中一個,不指定就會在全部ip

[test] -----模塊名

path=/root/rsync 指定數據存放路徑

use chroot=true 表示在傳輸文件前首先chroot到path參數指定的目錄下,這樣做可以實現額外的安全防護,確定是需要root權限,並且不能備份只想外部的符號連接所指向的目錄文件。默認為true,如果數據當中有軟鏈接文件,建議改成false(翻譯一下就是如果有軟鏈接而且傳輸的時候把實體也傳輸,且實體不存在了就會報錯)

max connections=4 指定最大連接數,默認為0,即沒有限制

read only=no true/false 如果只讀定義為true 那就是寫不進去了 客戶端就傳不了了

list=true --------作用是如果是ture 就可以列出遠程服務器所有的模塊。是一個安全選項,如果模塊名可見,就比較危險,有安全隱患。

技術分享圖片

uid=root 指定傳輸的時候以哪個用戶傳輸。

gid=root


auth users=test 指定傳輸時用使用到用戶名

技術分享圖片

secrets file=/etc/rsyncd.passwd 指定密碼文件,該參數聯通上面的參數如果不指定,則不用密碼驗證

這個文件的格式是 用戶:密碼 權限是600.客戶端的目錄是/etc/rsync_pass.txt 只寫密碼,權限也是600。同步的時候需要更多的一個選項,--password-file=/etc/rsync_pass.txt



hosts allow=192.168.133.132 1.1.1.1 2.2.2.2 192.168.133.0/24 用來定義哪些機器來做同步,1.1.1.1 2.2.2.2 表示多個ip 後面是ip段



如果服務器端端口改變了,客戶端需要在命令行加上一個選項 --port 端口號來保證傳輸正常。





Linux 系統日誌

技術分享圖片


隨著越來越多的涉及服務的啟動,運行,log就越來越重要。很多的錯誤都會記錄在日誌中。

重要的日誌:


/var/log/messages Linux的主要log都在這裏

技術分享圖片


所有的日誌都記錄在此,所以長久以往會很大。所以系統有一個日誌切割機制。增長到一定級別的時候就切割了。看下圖

技術分享圖片


因為linux有一個服務 logrotate 日誌切割

參考https://my.oschina.net/u/2000675/blog/908189



dmesg命令

顯示硬件相關的日誌,保存在內存中。關機即無。


/var/log/dmesg 記錄的是啟動相關的信息


last命令記錄的是正確登陸的日誌,調用的是 /var/log/wtmp文件,二進制文件不能用cat

lastb命令記錄的是登陸失敗的日誌,調用的是 var/log/btmp 二進制文件,如果有人嘗試暴力破解等,就會留下記錄。


安全日誌 /var/log/secure




screen工具 虛擬屏幕,虛擬終端。

技術分享圖片

有時候運行腳本時間很長,而且不能中途中斷。所以為了不讓一個任務意外中斷,需要保證網絡不能出任何的差錯。

有兩個辦法解決:

1, 放到後臺,有輸出到日誌中。

nohup 執行命令 日誌 &

這樣就算終端斷開也會在後臺運行


2,screen放到後臺,隨時用,隨時調出來。

screen命令 直接進入一個虛擬終端,執行一個不能停止的命令後 按ctrl a 然後按d 退出虛擬終端。任務繼續進行

比如 在screen下執行 vmstat 1 命令

技術分享圖片

技術分享圖片

告訴你有一個screen id是4047

可以使用screen -ls 列出來

技術分享圖片

回到screen screen -r id

技術分享圖片

殺掉screen 用exit


也可以同時用好幾個screen


但是時間久了不會記得screen下面運行的是什麽命令了,如何區分?

有一個參數可以起名,-S


screen -S “名字“ 進入的時候也可以用名字進入,同時也可以用id進來

技術分享圖片

Linux20180515 rsync syslog screen