1. 程式人生 > >rsync通過服務同步,Linux系統日誌,screen工具

rsync通過服務同步,Linux系統日誌,screen工具

日誌 哪些 存在 ins ssa 博客 後臺 etc 數據

筆記內容:

l 10.32/10.33 rsync通過服務同步

l 10.34 linux系統日誌

l 10.35 screen工具

筆記日期:2017.9.3

10.32/10.33 rsync通過服務同步

技術分享


rsync還可以通過服務的方式同步,這種方式首先需要開啟一個服務,服務是

cs架構的,也就是客戶端和服務端。服務端要開啟一個rsync服務,並且需要監聽一個端口,默認是873端口,這個端口是可以自定義的,然後客戶端可以通過這個端口與服務端進行通信,得以傳輸數據。

啟動服務之前要編輯配置文件,這個配置文件的路徑是:/etc/rsyncd.conf ,配置的信息不一定必須要寫在這個路徑的文件裏,也可以寫在其他的文件裏,不過在開啟服務的時候就得加上--configfile=配置文件的路徑,加上這個參數是為了指定配置文件的路徑,如果是寫在/etc/rsyncd.conf文件裏,則不需要指定配置文件的路徑。

rsyncd.conf文件配置樣例

port=873

log file=/var/log/rsync.log

pid file=/var/run/rsyncd.pid

address=192.168.77.130

[test]

path=/tmp/rsync

use chroot=true

max connections=4

read only=no

list=true

uid=root

gid=root

auth users=test

secrets file=/etc/rsyncd.passwd

hosts allow=192.168.77.132 1.1.1.1 2.2.2.2 192.168.77.0/24

把配置樣例粘貼到/etc/rsyncd.conf文件裏:

技術分享


保存退出後,啟動服務:

技術分享


檢測一下服務是否已啟動:

技術分享


檢查一下監聽的端口:

技術分享


tmp目錄下創建rsync目錄,並設置為777權限:

技術分享


現在我要在在另一臺機器同步文件過來,得執行下面這條命令:

rsync -avP /tmp/1.txt 192.168.77.130::test/123.txt

技術分享


如果出現以上錯誤就ping一下另一臺機器是否能通,能ping通的話就檢查一下端口是否能通。

telnet命令可以檢測某個端口是否是通的,如果沒有這個命令的話就安裝一下:

安裝命令:yum install -y telnet

檢測端口:

技術分享


端口不通的話,檢測一下是否是iptables的問題:

技術分享


這是沒問題的,那麽就檢測另一臺機器的iptables

技術分享

顯示以上這種信息,就證明是這臺機器的iptables問題。


停掉這臺機器的firewalld服務:

技術分享


現在再回到另一臺機器檢測一下端口:

技術分享

顯示以上結果則表示沒問題的。


Ctrl + ]再輸入quit退出端口檢測:

技術分享


處理完以上問題後,就可以執行rsync命令了:

技術分享


如果不想輸入密碼的話,就把配置文件裏這這兩行註釋掉:

技術分享


現在就可以不需要密碼傳輸文件了:

技術分享


在充當服務端的機器上就能看到同步的文件了:

技術分享


同樣的我們也可以從服務端上同步文件:

技術分享



技術分享


use chroottrue的情況下,你要同步的目錄裏有軟鏈接的話,並且你rsync命令裏加上了-L選項的話,那麽同步此目錄的時候,軟鏈接文件會同步失敗。

例如我在源目錄裏創建了一個軟鏈接文件:

技術分享


然後如果我rsync命令裏不加-L選項進行同步的話,是不會出問題的:

技術分享


但是如果加了-L就會出現錯誤:

技術分享


如果修改了端口號的話,那麽在同步的時候需要加上--port選項指定端口號。

例如我在配置文件裏端口號更改為8730

技術分享


重啟一下服務,端口才會更新:

技術分享


加上--port選項指定端口號:

技術分享




技術分享


列出服務端的可用模塊:

技術分享

如果listfalse的話,這個是列不出來的。

在同步時需要輸入用戶和密碼的話,就把剛剛註釋的auth userssecrets file恢復,然後在auth users行指定用戶名,secrets file行指定用戶的密碼文件路徑:

技術分享


然後給test用戶指定一個密碼,需要編輯一下test用戶的密碼文件:

vim /etc/rsyncd.passwd

內容格式如下:

技術分享

然後把此文件的權限改為600

技術分享


這時候再同步的話就需要輸入test用戶名和密碼了:

技術分享


但是這樣挺麻煩的每次都需要輸入密碼,但是跳過密碼又不太安全,這時候要想解決這個問題,可以在客戶端上也創建一個密碼文件,這個密碼文件裏保存著test用戶的密碼,在使用rsync命令同步的時候只要加上--password-file=密碼文件路徑,這個參數即可不需要輸入密碼:

創建密碼文件:vi /etc/rsync_pass.txt

內容格式,直接寫上密碼即可:

技術分享

然後把此文件的權限也改為600

技術分享


這時候再同步的話就不需要輸入test用戶的密碼了:

技術分享


hosts allow這一行是用於指定允許連接你服務端的IP,指定多個則空一格即可,也可以指定IP端。





10.34 linux系統日誌

技術分享


因為Linux系統最常用於作為服務器的操作系統,所以在系統中會存在著相當多的服務,有時候當一個服務啟動不了或者出現一些問題,就可以去查看日誌文件,日誌往往會記錄著服務啟動、運行、停止的信息,還有錯誤信息,有時候報錯不一定會顯示在屏幕上,而是會顯示在日誌裏,所以要學會查看日誌。

我們先來看看Linux系統裏有哪些重要的日誌:

第一個是/var/log/messages,這個日誌是Linux系統裏一個匯總的日誌,很多信息都記錄在這個日誌裏,如果服務沒有指定單獨的日誌文件的話,都會記錄在這個日誌裏,其實這就是個系統日誌。

技術分享


Linux系統裏會有一個日誌切割機制,當日誌文件大小增漲到一定的程度,就會對這個日誌進行切割:

技術分享

這些日誌切割是由logrotate服務來完成的,為了防止日誌文件大小無限制的增加,所以會有這樣的一個切割機制。

/etc/logrotate.conflogrotate服務的配置文件,內容如下:

技術分享


其他配置文件:

技術分享


syslog文件內容:

技術分享

Linux服務寫文件的時候是根據文件的inode號去寫的,而不是根據文件名,所以需要重新加載服務。

dmesg命令會把系統裏硬件相關的日誌列出來,這個日誌是保存在內存中的,並不是一個文件:

技術分享

硬盤、網卡等等硬件出問題了,都會記錄在這個日誌裏


dmesg -c可以清空這些日誌內容,清空時會再打印一遍。

第二個是/var/log/dmesg 日誌文件,這個日誌dmesg 命令沒有關聯,這是一個系統啟動日誌,會記錄系統啟動時的相關信息:

技術分享


last命令,用來查看系統正確的登錄歷史,這個命令調用的是/var/log/wtmp文件,這個文件是二進制文件,所以要用last來查看:

技術分享


last命令對應的是lastb命令,這個命令則是查看系統登錄失敗的歷史信息,同樣的這個命令也會調用一個文件,這個文件是/var/log/btmp文件,這也是一個二進制文件:

技術分享

當你的系統被人暴力破解的時候,這裏就會記錄很多日誌信息。


/var/log/secure是一個安全日誌:

技術分享


無論系統登錄成功或者失敗的信息都會被記錄到這個日誌文件裏:

技術分享


如果登錄失敗就會有這樣一個信息,還會把IP給記錄下來:

技術分享





10.35 screen工具

技術分享



screen是一個虛擬的終端,我們假設一個需求要執行一個腳本,這個腳本執行時間很長可能要一天一夜,而且這個腳本會輸出一些信息出來,所以不能中斷,為了保證腳本執行的過程不中斷,有兩個辦法可以解決這個問題,第一個辦法是丟到後臺裏去然後加一個日誌的輸出,這個方式雖然解決了任務中斷的問題,但是我們卻無法實時在屏幕上查看到任務的輸出信息。第二個辦法就是使用screen虛擬終端,把這個腳本放到虛擬終端去執行。

screen安裝命令:yum install -y screen

安裝完之後,執行screen命令,就會進入到虛擬終端。

現在我在虛擬終端裏執行vmstat命令,每秒輸出一次信息:

技術分享


然後再把這個命令的進程扔到後臺裏,會退回到真實終端並且會打印一個信息出來,表示有個進程在虛擬終端裏運行著:

技術分享

Ctrl + a之後再按d,可以將一個進程扔到後臺裏去。


screen -ls命令可以列出在虛擬終端裏運行著的進程:

技術分享


想要返回到虛擬終端裏的話,使用screen -r 然後加上進程的id即可:

技術分享


exit可以關閉screen虛擬終端,同樣的會有一行信息:

技術分享


screen可以有多個,也就是可以執行多次screen命令產生多個虛擬終端,使用screen -lsn可以列出這些虛擬終端的數量:

技術分享


同樣的想要進入哪個screen,指定它的id即可:

技術分享


但是有一個問題,就是時間久了之後可能會忘記這個screen是幹什麽用的了,因為它們除了id之外名字都是一樣的。這時候就需要使用到-S選項,這個選項可以自定義screen的名字:

技術分享


這樣使用screen -ls列出這些screen的是時候就知道是幹嘛的了:

技術分享


這時候使用screen -r 命令就可以指定screen名稱來進入這個screen

技術分享




擴展

1. Linux日誌文件總管logrotate

http://linux.cn/article-4126-1.html

2. xargs用法詳解

http://blog.csdn.net/zhangfn2011/article/details/6776925


本文出自 “12831981” 博客,請務必保留此出處http://12841981.blog.51cto.com/12831981/1973517

rsync通過服務同步,Linux系統日誌,screen工具