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即可