4月20日任務:
10.28 rsync工具介紹
10.29/10.30 rsync經常使用選項
10.31 rsync經過ssh同步
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/6776925html
rsync的使用場景
日誌切割工具logrotate
https://linux.cn/article-4126-1.html
xargs
https://blog.csdn.net/gb4215287/article/details/78037520node
一、rsync工具介紹linux
Linux系統下有不少數據備份工具,經常使用的是rsync,從字面意思理解爲remote sync (遠程同步)。rsync不只能夠遠程同步數據(相似scp),並且能夠本地同步數據(相似於cp),但不一樣cp或者scp的一點是,它不會覆蓋之前的數據 (若是數據已經存在),而是先判斷已經存在的數據和新數據的差別,只有數據不一樣時纔會把不相同的部分覆蓋。算法
rsync是一款快速且功能很是多的文件複製工具。它能夠在本地複製,經過任何遠程shell或從另外一臺主機複製到/從遠程 rsync守護進程。它提供了大量的選項控制其行爲的每一個方面並容許很是靈活指定要複製的文件集。它是著名的其增量轉 換算法,可減小發送的數據量經過發送只有來源之間的差別在網絡上文件和目標中的現有文件。rsync很普遍用於備份 和鏡像以及做爲改進的複製命令平常使用。shell
安裝rsync yum install -y rsyncapache
rsync -av /etc/passwd /tmp/1.txt 把/etc/passwd拷貝到tmp/下並更名叫1.txtvim
上面命令中:
a參數中包含了不少選項
v查看到可視化過程;查看到發送了多少字節;多少字節每秒;文件一共有多大;速度是多少安全
rsync -av /etc/passwd root@192.168.86.31:/tmp/1.txt 遠程複製,輸入用戶的密碼後,能夠拷貝服務器
這裏要求遠程的機器也必須按照rsync,須要驗證密碼是由於這裏沒有作兩機互聯網絡
rsync格式
rsync [OPTION] … SRC DEST 本機的
rsync [OPTION] … SRC [user@]host:DEST
rsync [OPTION] … [user@]host:SRC DEST
rsync [OPTION] … SRC [user@]host::DEST
rsync [OPTION] … [user@]host::SRC DEST
OPTION是選項(a,v),SRC是源文件或目錄,DEST是目標目錄或者文件;[USER@]host是遠程服務器,host表明IP,[USER@]能夠省略,若是不寫用戶名,默認會以當前終端的用戶執行
二、 rsync經常使用選項
-a 包含-r t p l g o D參數選項
-r 同步目錄時要加上,相似cp時的-r選項
-v 同步時顯示一些信息,讓咱們知道同步的過程
-l 保留軟鏈接,如果拷貝的原目錄裏面有一個軟連接文件,那這個軟連接文件指向到了另一個目錄 下。在加上-l,它會把軟連接文件自己拷貝到目標目錄裏面去
-L 加上該選項後,同步軟連接時會把源文件給同步,(能夠把軟鏈接所指向的源文件拷貝過去)
-p 保持文件的權限屬性
-o 保持文件的屬主(若是A是www用戶全部者,過去B同樣是www用戶,若是B沒有www用戶,會顯示成數字,有user1的話就顯示成user1)
-g 保持文件的屬組
-D 保持設備文件信息,/dev/sdb1這樣的設備文件有它的特殊性,若是不加-D可能拷貝過去就是一個 很是普通的文件,不能當設備來用
-t 保持文件的時間屬性
--delete 刪除DEST(目標目錄)中SRC(源目錄)沒有的文件
--exclude 過濾指定文件,如--exclude 「logs」會把文件名包含logs的文件或者目錄過濾掉,不一樣步。能夠寫多個--exclude
-P 顯示同步過程,好比速率,比-v更加詳細
--progress 同-P功能同樣
-u 加上該選項後,若是DEST(目標目錄)中的文件比SRC(源目錄裏的文件)新,則不一樣步
-z 傳輸時壓縮
經常使用選項較多,經常使用的有:a,-v,-z,--delete和--exclude
123目錄做爲源,tmp作目標目錄
rsync -av /root/123/ /tmp/123_dest/ 同步一個目錄,把root下的123目錄同步到tmp下並更名爲123_dest
rsync -avL --delete /root/123/ /tmp/123_dest/ --delete 刪除多餘的文件
rsync -avP /root/123/ /tmp/123_dest/ P顯示同步過程
三、rsync經過ssh同步
rsync經過ssh方式同步,從A機器到B機器,經過ssh的方式去傳輸
rsync -av test1/ 192.168.86.31:/tmp/test2/ 推文件,192.168.86.31是目標IP,而且這臺機器也須要安裝rsync
rsync -avP 192.168.86.31:/tmp/test2/ /tmp/test1/ 拉文件,把遠程文件拉回到本機
若是對方機器的端口不是22:
rsync -av -e "ssh -p 22" test1/ 192.168.86.31:/tmp/test2/ (ssh -p 22) 是一個命令指定端口,能夠鏈接對方的指定端口
ssh -p 192.168.86.31 也能夠這樣去鏈接對方機器
四、rsync經過服務同步
rsync 經過服務的方式同步 ,默認端口是873
要編輯配置文件/etc/rsyncd.conf
啓動服務rsync --daemon
格式:rsync -av /root/123/ 192.168.228.31::test/tobe.txt 兩個 ::test //test表示[test]模塊名路徑/tmp/rsync
rsyncd.conf樣例,把下列內容放到/etc/rsyncd.conf配置文件中
port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.86.3
[test] //[test] 模塊名
path=/tmp/rsync // 目錄爲實驗目錄/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.86.31
而後rsync --daemon 啓動服務,經過 ps aux |grep rsync查看服務是否啓動
netstat -lntp 查看監聽的端口是873,若是不寫監聽的IP,就會綁定0.0.0.0 所有網段,所有IP爲873
mkdir /tmp/rsync 建立實驗目錄
chmod 777 /tmp/rsync/ 更改權限
yum install -y telnet 安裝telnet
telnet 192.168.228.31 873 檢測端口是否通暢,下方的端口不通
關閉firewalld
systemctl stop firewalld.service
在B機器上給服務器寫文件
rsync -av /root/123/ 192.168.228.3::test/tobe.txt
rsyncd.conf配置文件詳解
port:指定在哪一個端口啓動rsyncd服務,默認是873端口。
log file:指定日誌文件。
pid file:指定pid文件,這個文件的做用涉及服務的啓動、中止等進程管理操做。
address:指定啓動rsyncd服務的IP。假如你的機器有多個IP,就能夠指定由其中一個啓動rsyncd服務,若是不指定該參數,默認是在所有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或者網段,若是是多個,中間用空格隔開。
use chroot=true|false 當有軟連接,須要給其定義爲false;
當設置了auth users和secrets file後,客戶端連服務端也須要用用戶名密碼了,若想在命令行中帶上密碼,能夠設定一個密碼文件
rsync -avL test@192.168.133.130::test/test1/ /tmp/test8/ --password-file=/etc/pass
其中/etc/pass內容就是一個密碼,權限要改成600
第一步、在服務端,建立一個軟鏈接
第二步、修改配置文件 vim /etc/rsyncd.conf
第三步、在另外一個客戶端同步test模塊
rsync -avLP 192.168.176.31::test/ /tmp/test/ 從服務的傳輸到test目錄
-auth users 指定傳輸時要使用的用戶名
secrets file:指定密碼文件
五、Linux系統日誌
曰志記錄了系統天天發生的各類各樣的事情,好比監測系統情況、排查系統故障等,能夠經過他來檢查錯誤發生的緣由.日誌的主要功能是審計和監測,還能夠實時的監測系統狀態,監測和追蹤侵入者等等。
/var/log/messages
系統平常日誌 /var/log/messages 它是核心系統日誌文件,包含了系統啓動時的引導消息,以及系統運行時的其餘狀態 消息。IO錯誤、網絡錯誤和其餘系統錯誤都會記錄到這個文件中。另外其餘信息,好比某我的的身份切換爲root以及用 戶自定義安裝的軟件(apache)的日誌也會在這裏列出。
在查看曰志的時候,會發現曰志自動切割了 ls /var/log/messages*
linux系統中有一個logrotate服務,會自動切割日誌,防止無限制的增長。
logrotate用來切割日誌 /etc/logrotate.conf 日誌切割配置文件
查看 cat /etc/logrotate.d/syslog
syslog文件會爲cron, maillog, messages, secure, spooled這幾個日誌進行切割
messages日誌是由syslogd服務決定的,因此kill -HUP就會從新加載這個日誌
還有一個腳本,shell命令行,在把日誌切割後(挪走),更名字生成新的日誌
Linux系統有一個特色,一個服務寫一個文件的時候,並非按照文件名去寫的,而是根據inode來寫的
dmesg命令和dmesg日誌
dmesg命令,會把系統硬件相關的日誌列出來
這個日誌是保存在內存中的,並非一個文件;假如你的網卡有問題了,硬盤損壞了,都會記錄在這個日 志中
dmesg -c清空當前日誌;可是一重啓這個系統,又會生成這些日誌
/var/log/dmesg 日誌
注意:這個日誌文件和dmesg命令沒有任何關聯;它是系統啓動的一個日誌,記錄的信息
last命令,調用的文件/var/log/wtmp
last命令,查看你正確的登錄歷史
它調用的文件/var/log/wtmp。
裏面記錄的是誰,在哪裏,來源IP,時間,登陸的時長都會有記錄
/var/log/wtmp日誌是一個二進制文件,不能直接cat查看,只能用last命令去查看
lastb命令查看登陸失敗的用戶,對應的文件時/var/log/btmp
對應的文件時/var/log/btmp日誌
/var/log/btmp也是二進制文件,不能直接cat的
安全日誌
/var/log/secure 登錄操做系統,驗證成功會在這裏記錄要給日誌,失敗也會記錄
六、screen工具 虛擬終端
有時候咱們須要執行一個命令或腳本,須要幾小時甚至幾天,在這個過程當中,若是中途斷網或者出現有其餘意外狀況怎麼辦,固然也能夠把命令或者腳本放到後臺運行,不過不保險,沒法在屏幕上隨時查看,這就要用到虛擬終端screen。
單個screen,創建、退出
首先安裝screen包 : yum install -y screen
輸入screen直接回車就進入了虛擬終端
ctrl+a ,再按d,退出虛擬終端,但不是結束
screen -ls 查看已打開的screen會話
退出後,若是想再次登入某個screen會話,可使用的是screen -r id 進入指定的終端
exit,能夠直接退出screen會話
若是有多個screen會話,能夠經過id進入指定的會話
若是screen太多,殊不知道其功能做用,須要命令和定義
screen -S "test_screen" 定義一個自定義的名字-S