1. 程式人生 > >Linux學習-1101(rsync下、log、screen)

Linux學習-1101(rsync下、log、screen)

10.32/10.33 rsync通過服務同步

10.34 linux系統日誌

10.35 screen工具

一、 rsync通過服務同步

rsync 通過服務的方式同步,首先需要開啟一個服務。它是C/S架構,開啟rsync服務,預設埠是873

啟動服務:

1、在啟動服務之前,首先要編輯配置檔案,檔案地址是 /etc/rsyncd.conf。(也可以更改路徑,但是在更改路徑後,就需要在啟動服務的時候,去rsync --daemon//conf=後跟路徑)

2、啟動服務:rsync --daemon

格式:rsync -av test1/ 192.168.133.130::module/dir/

  • rsyncd.conf樣例
port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=172.18.11.153
[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.133.132 1.1.1.1 2.2.2.2  192.168.133.0/24

配置檔案詳解:

port:指定rsync服務埠,預設是873

log file:指定日誌檔案

pid file:指定pid檔案

address:指定rsync啟動服務的ip,如有多個ip就可以指定其中一個ip啟動。如果不指定改引數,預設是全部ip啟動

[]:括號內指定模組名,可以自定義

path:存放資料的路徑

use chroot  true|false :傳輸檔案前首先chroot到path引數所指定的目錄下。這樣做的原因是實現額外的安全防護,但缺點是需要以roots許可權,並且不能備份指向外部的符號連線所指向的目錄檔案。預設情況下chroot值為true,如果你的資料當中有軟連線檔案,建議你設定成false。

 

max connections:指定最大的連線數,預設是0,即沒有限制

 

read only ture|false:如果為true,則不能上傳到該模組指定的路徑下。

list:表示當用戶查詢該伺服器上的可用模組時,該模組是否被列出,設定為true則列出,false則隱藏。

uid/gid:指定傳輸檔案時以哪個使用者/組的身份傳輸。

auth users:指定傳輸時要使用的使用者名稱。

secrets file:指定密碼檔案,該引數連同上面的引數如果不指定,則不使用密碼驗證。注意該密碼檔案的許可權一定要是600。格式:使用者名稱:密碼

hosts allow:表示被允許連線該模組的主機,可以是IP或者網段,如果是多個,中間用空格隔開。 當設定了auth users和secrets file後,客戶端連服務端也需要用使用者名稱密碼了,若想在命令列中帶上密碼,可以設定一個密碼檔案

rsync -avL [email protected]::test/test1/ /tmp/test8/ --password-file=/etc/pass    其中/etc/pass內容就是一個密碼,許可權要改為600

 

演示:

1、配置檔案修改完成後啟動服務

    rsync --daemon

2、檢查服務

netstat -lntp |grep 873

[[email protected] ~]# netstat -lntp |grep 873
tcp        0      0 172.18.11.153:873       0.0.0.0:*               LISTEN      9738/rsync

3、測試

rsync -av /tem/test11111.txt 172.18.11.153::test/tmp/test2222.txt

::為模組名,也就是配置檔案中[test]

 


rsync傳輸時設定使用者名稱密碼:

1、配置檔案中指定使用者名稱和密碼檔案

    auth users=test 
    secrets file=/etc/rsyncd.passwd

  2、編輯/etc/rsyncd.passwd

       密碼格式為:test:wxy123

        修改許可權為600

        chmod 600 /etc/rsyncd.passwd

3、測試
        rsync -avP /tmp/test/ [email protected]::test/

客戶端設定密碼檔案:
在rsync傳輸檔案的時候,在寫shell指令碼輸入密碼不好,這時候在客戶端也定義一個密碼檔案

1、設定密碼檔案
vim /etc/rsync_pass.txt
格式:客戶端只寫一個密碼即可
並修改許可權為600
chmod 600 /etc/rsync_pass.txt

2、測試
rsync -avP /tmp/test/ --password-file=/etc/rsync_pass.txt [email protected]::test/
這裡需要加上--password-file=/etc/rsync_pass.txt

 

二、系統日誌

  • /var/log/messages
  •  /etc/logrotate.conf 日誌切割配置檔案
  •  參考https://my.oschina.net/u/2000675/blog/908189
  •  dmesg命令
  •  /var/log/dmesg 日誌
  •  last命令,呼叫的檔案/var/log/wtmp
  •  lastb命令檢視登入失敗的使用者,對應的檔案時/var/log/btmp
  •  /var/log/secure

1、系統日誌

    /var/log/messages 是linux的系統總日誌,

    系統中日誌會有自動切割機制,增長到一定級別就會自動切割:

[[email protected] ~]# ll /var/log/messages*
-rw------- 1 root root    37371 Nov 20 17:01 /var/log/messages
-rw------- 1 root root   164427 Oct 28 03:40 /var/log/messages-20181028
-rw------- 1 root root 11215013 Nov  5 03:35 /var/log/messages-20181105
-rw------- 1 root root  8009011 Nov 11 03:41 /var/log/messages-20181111
-rw------- 1 root root   187974 Nov 19 03:29 /var/log/messages-20181119
[[email protected] ~]# 
[[email protected] ~]# du -sh /var/log/messages*
44K	/var/log/messages
168K	/var/log/messages-20181028
11M	/var/log/messages-20181105
7.7M	/var/log/messages-20181111
188K	/var/log/messages-20181119
[[email protected] ~]# 

切割機制的配置檔案:

 /etc/logrotate.conf

[[email protected] ~]# cat  /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
	minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

 

 /etc/logrotate.d/syslog 

這個會給cron,maillog,messages,secure,spooler這幾個日誌進行切割

Linux系統有一個特點,一個服務寫一個檔案的時候,並不是按照檔名去寫的,而是根據inode來寫的

[[email protected] ~]# cat /etc/logrotate.d/syslog 
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    missingok
    sharedscripts
    postrotate
	/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

 

參考連結:http://my.oschina.net/u/2000675/blog/908189

 

 

2、dmesg命令

  • dmesg會把系統的硬體日誌列出來
  • 這個個日誌是儲存在記憶體中的,並不是一個檔案
  • dmesg -c 清空當前日誌
  •  /var/log/dmesg這個日誌檔案和dmesg命令沒喲任何關聯,它是系統啟動的一個日誌

 

3、last命令

    檢視歷史的登入情況,執行last命令時它會呼叫/var/log/wtmp檔案,並把該檔案的記錄登入系統的資訊顯示出來。

  • wtmp是一個二進位制檔案不能執行cat檢視
[[email protected] ~]# last
root     pts/1        27.36.116.242    Tue Nov 20 16:21   still logged in   
root     pts/0        27.36.116.242    Tue Nov 20 14:57   still logged in   
root     pts/0        27.36.116.242    Mon Nov 19 15:58 - 22:05  (06:06)    
root     pts/0        119.131.39.234   Tue Nov 13 22:27 - 00:38  (02:11)    
root     pts/1        119.131.39.234   Tue Nov 13 20:19 - 22:26  (02:07)    
root     pts/0        27.36.116.242    Tue Nov 13 13:35 - 21:36  (08:01)   

last會顯示登入使用者、IP、時間等資訊

 

4、lastb命令

檢視登入失敗的使用者資訊,對應的日誌檔案:/var/log/btmp 。同樣這也是一個二進位制檔案

[[email protected] ~]# lastb 
admin    ssh:notty    14.169.194.36    Tue Nov 20 07:48 - 07:48  (00:00)    
user     ssh:notty    111.241.103.18   Tue Nov 20 07:48 - 07:48  (00:00)    
user     ssh:notty    111.241.103.18   Tue Nov 20 07:48 - 07:48  (00:00)    
admin    ssh:notty    186.1.32.136     Tue Nov 20 04:00 - 04:00  (00:00)    
admin    ssh:notty    186.1.32.136     Tue Nov 20 04:00 - 04:00  (00:00)    
admin    ssh:notty    41.202.171.248   Mon Nov 19 14:09 - 14:09  (00:00)    
admin    ssh:notty    41.202.171.248   Mon Nov 19 14:09 - 14:09  (00:00)

 

5、安全日誌

 

/var/log/secure 這個日誌會記錄系統的登入資訊,成功失敗都會記錄。如果系統有可能被暴力可以檢視這個日誌

 

三、screen工具

    screen它是虛擬的一個螢幕,也可以理解為一個虛擬的終端。

    需求:執行一個指令碼,時間很長 ,並且這個指令碼會輸出一些資訊。要保證這個指令碼不能中斷。

     解決方法:1、nohup command &   把指令碼丟到後臺,並加一個日誌。但是這樣沒辦法實時的檢視輸出資訊

                      2、screen工具,可以把要執行的命令,放到這個終端裡,然後在退出pts/0之前,可以把screen丟到後臺去,隨時用, 隨時檢視

screen安裝:

yum install -y screen

  • 安裝完成後直接輸入screen命令,會進入到screen,進入到一個視窗,這個視窗就是一個虛擬終端
  • 虛擬終端,執行vmstat 1命令,然後 ctrl+a鍵 再按 d鍵 ,就把screen丟到後臺了
  • 執行screen ls 命令,列出當前所有的session
  • 執行screen -r 再加檢視到的id 命令,再回到虛擬終端
  • 想要退出screen ,直接exit即可