rsync通過服務同步,Linux系統日誌,screen工具
筆記內容:
l 10.32/10.33 rsync通過服務同步
l 10.34 linux系統日誌
l 10.35 screen工具
筆記日期:2017.9.3
10.32/10.33 rsync通過服務同步
rsync還可以通過服務的方式同步,這種方式首先需要開啟一個服務,服務是
啟動服務之前要編輯配置文件,這個配置文件的路徑是:/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 chroot為true的情況下,你要同步的目錄裏有軟鏈接的話,並且你rsync命令裏加上了-L選項的話,那麽同步此目錄的時候,軟鏈接文件會同步失敗。
例如我在源目錄裏創建了一個軟鏈接文件:
然後如果我rsync命令裏不加-L選項進行同步的話,是不會出問題的:
但是如果加了-L就會出現錯誤:
如果修改了端口號的話,那麽在同步的時候需要加上--port選項指定端口號。
例如我在配置文件裏端口號更改為8730:
重啟一下服務,端口才會更新:
加上--port選項指定端口號:
列出服務端的可用模塊:
如果list為false的話,這個是列不出來的。
在同步時需要輸入用戶和密碼的話,就把剛剛註釋的auth users和secrets 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.conf是logrotate服務的配置文件,內容如下:
其他配置文件:
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工具