0420第十六次課:平常運維-rsync、日誌

平常運維-rsync、日誌

1、rsync介紹

  1. rsync介紹html

    rsync是一個同步工具,在平常的運維中常會用到。它能夠本地同步,也實現能夠遠程兩臺機器同步。node

    好比有個需求:有A、B目錄兩個目錄,A目錄文件一直在不定時的增長,想要把A目錄裏面的數據拷貝到B目錄下去。而且要求每小時拷貝一次,若是用cp來實現只能覆蓋,而且浪費磁盤IO。這種狀況就可使用rsync,它能夠增量的同步。linux

  2. rsync安裝shell

    yum -y install rsyncvim

  3. rsync命令格式安全

    rsync [OPTION] … SRC DEST //OPTION爲參數,SRC源,DEST目標服務器

    rsync [OPTION] … SRC [user@]host:DEST //遠程拷貝,若是不寫user就默認使用當前的用戶session

    rsync [OPTION] … [user@]host:SRC DEST // 反向拷貝,把遠程機器上的文件或目錄拷到本地架構

    rsync [OPTION] … SRC [user@]host::DEST // 多了:: ,後面在講運維

    rsync [OPTION] … [user@]host::SRC DEST

  4. rsync經常使用選項

2、rsync使用示例

  1. /etc/passwd 拷貝到/tmp/目錄下而且更名爲1.txt

    rsync -av /etc/passwd /tmp/1.txt

    -a :包含-rtplgodD選項

    -v:可視化顯示

  2. 遠程拷貝

    rsync -av /etc/passwd root@47.106.84.56:/tmp/

  3. rsync同步目錄

    rsync -av /root/test/ /tmp/test_dest/

    同步目錄時,文件結尾不能少了"/"

  4. 軟鏈接拷貝

    加上-L 參數後,會把參數 -l 的含義給覆蓋掉。-L會把軟連接所指向的源文件給拷貝過去

    rsync -avL /root/test/ /tmp/test_dest/

  5. 刪除目標中源文件中沒有的內容

    rsync -av --delete /root/test/ /tmp/test_dest/

    test_dest目標目錄中有666.txt,可是源目錄test目錄中沒有這個文件

    執行完同步後,666.txt被刪除

  6. 過濾文件同步

    過濾掉全部.txt文件

    rsync -av --exclude "*.txt" /root/test/ /tmp/test_dest/

    也能夠支持多重多慮

    rsync -avL --exclude "*.txt" --exclude="11*" /root/test/ /tmp/test_dest/

  7. -P參數,詳細的顯示同步過程

    rsync -avP /root/test/ /tmp/test_dest/

  8. -u參數 ,目標中的文件比源新,則不一樣步

    修改/tmp/test_dest/111.py文件

    加上-u參數,再執行同步發現111.py並無被以前的文件覆蓋掉

    rsync -avu /root/test/ /tmp/test_dest/

  9. -z 參數,壓縮傳輸

    若是傳輸文件比較大能夠加上這個參數

    rsync -avz /root/test/ /tmp/test_dest/

3、rsync經過ssh同步

  • ssh遠程同步條件

    兩臺機器,能夠ping通 而且都安裝了rsrnc包

  • 遠程同步示例

    rsync -av /etc/passwd 193.112.38.222:/tmp/test222

    193.112.38.222:是目標機器ip,輸入密碼就能夠同步了

  • 將遠程機器上的文件拉取到本地

    rsync -av 193.112.38.222:/tmp/test222 /tmp/test333

  • 指定端口進行傳輸

    若是對方機器不是默認的22端口,能夠-e指定端口進行傳輸

    rsync -av -e "ssh -p 22" /etc/passwd 193.112.38.222:/tmp/test222

4、rsync經過服務同步

rsync經過服務的方式同步,首先須要開啓一個服務。它是C/S架構,開啓rsync daemo服務,默認端口是873。daemon模式是守護進程。

開啓服務後,客戶端就能夠經過873端口進行通訊。

  • 服務配置文件:

    配置文件地址是 /etc/rsyncd.conf。(也能夠更改路徑,可是在更改路徑後,就須要在啓動服務的時候,去rsync --daemon//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 --daemon

  • 檢查服務

    netstat -lntp |grep 873

    ps -aux |grep rsync

  • 測試

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

    ::爲模塊名,也就是配置文件中[test]

  • rsync傳輸時設置用戶名密碼

    一、配置文件中指定用戶名和密碼文件

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

    二、編輯/etc/rsyncd.passwd

    密碼格式爲:test:wxy123

    修改權限爲600

    chmod 600 /etc/rsyncd.passwd

    三、測試

    rsync -avP /tmp/test/ test@172.18.11.153::test/

  • 客戶端設置密碼文件

    在rsync傳輸文件的時候,在寫shell腳本輸入密碼很差,這時候在客戶端也定義一個密碼文件

    一、設置密碼文件

    vim /etc/rsync_pass.txt

    格式:客戶端只寫一個密碼便可

    並修改權限爲600

    chmod 600 /etc/rsync_pass.txt

    二、測試

    rsync -avP /tmp/test/ --password-file=/etc/rsync_pass.txt test@172.18.11.153::test/

    這裏須要加上--password-file=/etc/rsync_pass.txt

5、系統日誌

  • 系統日誌

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

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

  • 切割機制的配置文件

    /etc/logrotate.conf

    參數解釋:

    weekly //每週切割一次

    rotate 4 //4週一次輪換

    create //建立新的

    compress //是否須要壓縮,默認是註釋的

  • /etc/logrotate.d/syslog 這個會給cron,maillog,messages,secure,spooler這幾個日誌進行切割

    Linux系統有一個特色,一個服務寫一個文件的時候,並非按照文件名去寫的,而是根據inode來寫的

  • dmesg命令

    一、dmesg會把系統的硬件日誌列出來

    二、這個個日誌是保存在內存中的,並非一個文件

    三、dmesg -c 清空當前日誌

    四、/var/log/dmesg這個日誌文件和dmesg命令沒喲任何關聯,它是系統啓動的一個日誌

  • last命令

    一、last命令是調用的/var/log/wtmp 日誌

    二、日誌內容包含:用戶、登陸終端、源IP、時間、登陸時長

    三、/var/log/wtmp日誌是-個二進制文件,不能直接查看的,只能用last命令去查看

  • lastb 命令查看登陸失敗的用戶

    一、lastb命令是調用的/var/log/btmp 日誌

    二、日誌內容包含:用戶、登陸終端、登陸IP、時間、登陸時長

    三、/var/log/btmp日誌也是-個二進制文件,不能直接查看的,只能用lastb命令去查看

    四、若是服務器被暴力登陸(被黑),這個日誌通常會有不少條記錄

  • 安全日誌

    /var/log/secure 這個日誌會記錄系統的登陸信息,成功失敗都會記錄。若是系統有可能被暴力能夠查看這個日誌

6、screen工具

screen它是虛擬的一個屏幕,也能夠理解爲一個虛擬的終端。

  • 使用需求

    需求:執行一個腳本,時間很長 ,而且這個腳本會輸出一些信息。要保證這個腳本不能中斷。

    解決方法:

    一、nohup command & 把腳本丟到後臺,並加一個日誌。可是這樣沒辦法實時的查看輸出信息

    二、screen工具,能夠把要執行的命令,放到這個終端裏,而後在退出pts/0以前,能夠把screen丟到後臺去,隨時用, 隨時查看 。

  • screen安裝

    yum install -y screen

  • 使用

    安裝完成後直接輸入screen命令,會進入到screen,進入到一個窗口,這個窗口就是一個虛擬終端

    虛擬終端,執行vmstat 1命令,而後 ctrl+a鍵 再按 d鍵 ,就把screen丟到後臺了

    執行screen -ls 命令,列出當前全部的session

    執行screen -r 再加查看到的id 命令,再回到虛擬終端

    screen -r 1558

    想要退出screen ,直接exit便可

    建立一個自定義名字的screen,加上-S選項,能夠指定自定義的名字

    screen -S wxy

7、課堂筆記

相關文章
相關標籤/搜索