日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

计划任务以及日志管理

發(fā)布時(shí)間:2024/1/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计划任务以及日志管理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

計(jì)劃任務(wù)以及日志管理

1、計(jì)劃任務(wù)

簡(jiǎn)單介紹:

計(jì)劃任務(wù):就是在計(jì)劃內(nèi)的任務(wù),比如說(shuō)什么時(shí)候做什么樣的意見事情;就是提前就已經(jīng)是規(guī)劃好了,在Linux的世界面也會(huì)存在這種計(jì)劃性的任務(wù),而且,在Linux系統(tǒng)中在創(chuàng)建的時(shí)候就已經(jīng)默認(rèn)了很多的計(jì)劃任務(wù),僅僅是我們不知道而已;屬實(shí)打臉,學(xué)習(xí)統(tǒng)居然還不知道系統(tǒng)是如何的?扯遠(yuǎn)了,那么在Linux系統(tǒng)中,通常使用兩個(gè)服務(wù)器來(lái)實(shí)現(xiàn)計(jì)劃性的任務(wù)

  • atd:一次性計(jì)劃任務(wù)
  • crond:周期性計(jì)劃任務(wù)

簡(jiǎn)單的理解就是計(jì)劃性任務(wù)就是做一些周期性的工作內(nèi)容,比如說(shuō)是備份,又比如說(shuō)切割系統(tǒng)日志等等;

crond:守護(hù)進(jìn)程是為了周期性執(zhí)行任務(wù)或者是出出力等待處理事件;

任務(wù)的調(diào)度:可以是系統(tǒng)自帶的,也可以是人為的;簡(jiǎn)單的說(shuō)就是系統(tǒng)任務(wù)調(diào)度、用戶任務(wù)調(diào)度;

計(jì)劃性任務(wù)的實(shí)現(xiàn)方式:

  • 定時(shí)性的計(jì)劃任務(wù):就是按照一定周期執(zhí)行的
  • 突發(fā)性的計(jì)劃任務(wù),臨時(shí)安排的,臨時(shí)設(shè)置的計(jì)劃性任務(wù);

at一次性計(jì)劃任務(wù)

at計(jì)劃性任務(wù):它是僅僅使用一次,用于突發(fā)的,突然想定時(shí)執(zhí)行的一次任務(wù)調(diào)度的工具;

at計(jì)劃是由atd這個(gè)服務(wù)管理;

at命令

作用:指定一次性計(jì)劃任務(wù)

語(yǔ)法:at+時(shí)間

服務(wù)名:atd

選項(xiàng):

  • -l:查看at的任務(wù)列表
  • atq:查看任務(wù)列表
  • -c:查看具體的任務(wù)內(nèi)容
  • -u:指定at命令的用戶
  • atrm:刪除任務(wù)
#查看是否有at服務(wù) [root@node0 ~]# systemctl status atd Unit atd.service could not be found.#安裝atd服務(wù) [root@node0 ~]# yum -y install at#再次查看 [root@node0 ~]# systemctl status atd ● atd.service - Job spooling toolsLoaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)Active: inactive (dead)#啟動(dòng)atd服務(wù) [root@node0 ~]# systemctl start atd [root@node0 ~]# systemctl status atd ● atd.service - Job spooling toolsLoaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)Active: active (running) since 二 2021-09-21 10:50:20 CST; 3s agoMain PID: 7480 (atd)CGroup: /system.slice/atd.service└─7480 /usr/sbin/atd -f#查看開機(jī)是否自啟動(dòng)的命令-->centos7以上的命令 [root@node0 ~]# systemctl is-enabled atd enabled#查看計(jì)劃任務(wù)是否開機(jī)自啟動(dòng)-->centos6 [root@node0 ~]# chkconfig --list | grep atd

at指定計(jì)劃任務(wù)

  • 確定系統(tǒng)時(shí)間
  • 指定在當(dāng)天晚上8:00執(zhí)行查看命令
#查看一下當(dāng)天的時(shí)間 [root@node0 ~]# date 2021年 09月 21日 星期二 14:32:29 CST#指定計(jì)劃性任務(wù) [root@node0 ~]# at 8:00pm at> cat /etc/fstab at> <EOT> #結(jié)束計(jì)劃性任務(wù)的是ctrl+d job 1 at Tue Sep 21 20:00:00 2021#查看一下計(jì)劃性任務(wù) [root@node0 ~]# atq 1 Tue Sep 21 20:00:00 2021 a root [root@node0 ~]# at -l 1 Tue Sep 21 20:00:00 2021 a root#atq輸出信息講解:任務(wù)的編號(hào)+執(zhí)行的時(shí)間+隊(duì)列+執(zhí)行者

如果真在執(zhí)行命令:ctrl+d,但是錯(cuò)誤的按到了ctrl+s,應(yīng)該如何處理?

#在linux的世界里面,錯(cuò)誤的按了ctrl+s表示的是鎖定屏幕的意思,如果按了不能正常的輸入, #需要使用ctrl+q來(lái)退出

如果說(shuō)有人設(shè)置了計(jì)劃任務(wù),通常的情況下會(huì)保存到/var/spool/at/的目錄下

通過(guò)-c可以直接查看任務(wù)的命令

[root@node0 ~]# ls /var/spool/at/ a00002019f1e50 spool 您在 /var/spool/mail/root 中有郵件

at任務(wù)的幾種寫法:

[root@node0 ~]# at 21:00 2021-09-30 #定義具體的某一天什么時(shí)候執(zhí)行 [root@node0 ~]# at now +10min #從現(xiàn)在開始十分后執(zhí)行 [root@node0 ~]# at 16:00 tomorrow #指定明天的16點(diǎn)開始執(zhí)行 [root@node0 ~]# at 16:00 +3days #指定三天后的幾點(diǎn)執(zhí)行 [root@node0 ~]# at 16:00 < a.txt#刪除任務(wù) [root@node0 ~]# atrm 2 [root@node0 ~]# atq 3 Thu Sep 30 21:00:00 2021 a root

crontab定時(shí)任務(wù)

crond命令是定時(shí)檢查是否有需要執(zhí)行的工作,如果有周期性的工作就會(huì)自動(dòng)執(zhí)行該工作;

cron是Linux下的定時(shí)執(zhí)行工具,無(wú)需人工干預(yù)操作

系統(tǒng)常見的周期性工作:

更新whatis數(shù)據(jù)庫(kù)、updatedb數(shù)據(jù)庫(kù)、日志定期切割等等

#crond服務(wù) [root@node0 ~]# systemctl status crond #查看是否有開啟crond #設(shè)置開機(jī)自啟動(dòng) [root@node0 ~]# systemctl enable crond

crontab命令

作用:指定定制任務(wù)

語(yǔ)法:crontab+選項(xiàng)

選項(xiàng)

  • -u:指定用戶使用cron服務(wù)
  • -l:查看當(dāng)前用戶下的cron任務(wù)
  • -r:刪除cron任務(wù)
  • -e:編輯cron任務(wù)–>這個(gè)是常用選項(xiàng)

crontab的編寫的語(yǔ)法格式

[root@node0 ~]# crontab -e no crontab for root - using an empty one * * * * * command#使用方法說(shuō)明 分、時(shí)、日、月、周+命令 分:0-59 時(shí):0-23 日:1-31 月:1-12 周:1-7 命令:shell命令#特殊字符的含義 * 代表取值范圍內(nèi)的數(shù)字 (任意/每) / 指定時(shí)間的間隔頻率 */10 0-23/2 - 代表從某個(gè)數(shù)字到某個(gè)數(shù)字 8-17 , 分開幾個(gè)離散的數(shù)字 6,10-13,20

cron計(jì)劃任務(wù)案例

每天凌晨2點(diǎn)開始備份數(shù)據(jù)

[root@node0 ~]# crontab -e no crontab for root - using an empty one * 2 * * * tar -zcvf /opt/grub2.tar.gz /boot/grub2#查看一下計(jì)劃任務(wù) [root@node0 ~]# crontab -l * 2 * * * tar -zcvf /opt/grub2.tar.gz /boot/grub2

指定用戶執(zhí)行計(jì)劃性任務(wù)

[root@node0 ~]# crontab -u bin -e no crontab for bin - using an empty one 2 * 2 * * echo "haha" >> /opt/a.txt#查看指定用戶 [root@node0 ~]# crontab -l -u bin 2 * 2 * * echo "haha" >> /opt/a.txt

我們應(yīng)該如何排查所有用戶的計(jì)劃性任務(wù)?

  • 首先我們必須理解:所有用戶的計(jì)劃任務(wù)都會(huì)在/var/spool/cron/下產(chǎn)生對(duì)應(yīng)的文件;因此查看這個(gè)目錄下的文件數(shù)就是對(duì)應(yīng)的文件列表
[root@node0 ~]# ll /var/spool/cron/ 總用量 8 -rw------- 1 root root 36 922 14:14 bin -rw------- 1 root root 50 922 14:06 root

系統(tǒng)級(jí)別的計(jì)劃性任務(wù)

系統(tǒng)中有默認(rèn)的計(jì)劃任務(wù)列表,因此我們需要知道大概的系統(tǒng)任務(wù)調(diào)度的配置文件

#/etc/crontab這個(gè)文件定義了crontab的用法 [root@node0 ~]# ll /etc/crontab -rw-r--r--. 1 root root 451 610 2014 /etc/crontab [root@node0 ~]# vim /etc/crontab SHELL=/bin/bash #定義了操作系統(tǒng)使用的shell PATH=/sbin:/bin:/usr/sbin:/usr/bin #命令的路徑 MAILTO=root #郵件發(fā)送的用戶# For details see man 4 crontabs# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed#定義的計(jì)劃任務(wù)可以寫入此配置文件; #使用crontab命令的注意事項(xiàng)注意的是變量問(wèn)題定時(shí)清理郵件日志,使用重定向到>/dev/null 2>&1

那么系統(tǒng)定義了哪些的計(jì)劃性任務(wù)?

[root@node0 ~]# ls /etc/cron #這里按兩下tab鍵 cron.d/ cron.deny cron.monthly/ cron.weekly/ cron.daily/ cron.hourly/ crontab [root@node0 ~]# ls -ld /etc/cron* drwxr-xr-x. 2 root root 21 827 23:31 /etc/cron.d #這里定義的是系統(tǒng)自動(dòng)定期需要執(zhí)行的任務(wù),但是又不是按小時(shí),按天,按星期,按月來(lái)執(zhí)行的,那么就放在這個(gè)目錄下面。 drwxr-xr-x. 2 root root 42 827 23:32 /etc/cron.daily #每天執(zhí)行的腳本; -rw-------. 1 root root 0 411 2018 /etc/cron.deny #控制用戶是否能做計(jì)劃任務(wù)的文件; drwxr-xr-x. 2 root root 22 827 23:31 /etc/cron.hourly #每小時(shí)執(zhí)行的腳本; drwxr-xr-x. 2 root root 6 610 2014 /etc/cron.monthly #每月執(zhí)行的腳本; -rw-r--r--. 1 root root 451 610 2014 /etc/crontab #主配置文件 也可添加任務(wù); drwxr-xr-x. 2 root root 6 610 2014 /etc/cron.weekly #每周執(zhí)行的腳本;

計(jì)劃任務(wù)的作業(yè)

每天晚上21:00 重啟apache0 21 * * * /etc/init.d/httpd restart 每月1、10、22日的4 : 45重啟apache。45 4 1,10,22 * * /etc/init.d/httpd restart 每月1到10日的4 : 45重啟apache。45 4 1-10 * * /etc/init.d/httpd restart 每隔兩天的上午8點(diǎn)到11點(diǎn)的第3和第15分鐘重啟apach3,15 8-11 */2 * * /etc/init.d/httpd restart 晚上11點(diǎn)到早上7點(diǎn)之間,每隔一小時(shí)重啟apach0 23-7/1 * * * /etc/init.d/apach restart 周一到周五每天晚上 21:15 寄一封信給 root@panda:15 21 * * 1-5 mail -s "hi" root@panda < /etc/fstab

問(wèn)題:

計(jì)劃任務(wù)中是沒(méi)有秒的,如果需要按照每2秒執(zhí)行一次命令該如何實(shí)現(xiàn)?

在腳本的死循環(huán)中,添加命令 sleep 2 ,執(zhí)行30次自動(dòng)退出,然后添加,計(jì)劃任務(wù):* * * * * /back.sh 案例要求:每天2:00備份/etc/目錄到/tmp/backup下面將備份命令寫入一個(gè)腳本中每天備份文件名要求格式: 2017-08-19_etc.tar.gz在執(zhí)行計(jì)劃任務(wù)時(shí),不要輸出任務(wù)信息存放備份內(nèi)容的目錄要求只保留三天的數(shù)據(jù)操作: vim a.sh#!/bin/bashmkdir -p /tmp/backuptar -zcf etc.tar.gz /etc#find /tmp/backup -name "*.tar.gz" -mtime +3 -exec rm -rf {}\;find /tmp/backup -name "*.tar.gz" -mtime +3 |xargs rm -rf crontab -e0 2 * * * /bin/bash a.sh這里需要注意的一個(gè)點(diǎn)就是不要把所有的信息放入/tmp目錄,因?yàn)橛?jì)劃任務(wù)中會(huì)定時(shí)清理/tmp目錄下的內(nèi)容;

2、日志管理

在centos7中,系統(tǒng)日志消息由兩個(gè)服務(wù)負(fù)責(zé)處理的,一個(gè)是systemd-journald和rsyslog

常見的日志文件

通常系統(tǒng)日志文件都會(huì)放到/var/log目錄下,并且是有rsyslog維護(hù)與管理,

[root@node0 ~]# ll /var/log/ #取幾個(gè)重要的進(jìn)行分析 /var/log/message #大多數(shù)系統(tǒng)日志消息記錄在此處。有也例外的:如與身份驗(yàn)證,電子郵件處理相關(guān)的定期作業(yè)任務(wù)等 /var/log/secure #安全和身份驗(yàn)證相關(guān)的消息和登錄失敗的日志文件。 ssh遠(yuǎn)程連接產(chǎn)生的日志 /var/log/maillog #與郵件服務(wù)器相關(guān)的消息日志文件 /var/log/cron #與定期執(zhí)行任務(wù)相關(guān)的日志文件 /var/log/boot.log #與系統(tǒng)啟動(dòng)相關(guān)的消息記錄 /var/log/dmesg #與系統(tǒng)啟動(dòng)相關(guān)的消息記錄

案例:

查看那個(gè)ip經(jīng)常暴力破解系統(tǒng)用戶密碼

#啟動(dòng)一臺(tái)設(shè)備,并且多次輸入錯(cuò)得密碼來(lái)登陸130服務(wù)器 [root@Node1 ~]# ssh root@192.168.75.130 Permission denied, please try again. root@192.168.75.130's password: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). [root@node1 ~]# #在130的服務(wù)器就從secure的文件中能夠查看到 [root@node0 ~]# grep Fail /var/log/secure Sep 25 11:34:24 node0 sshd[7487]: Failed password for root from 192.168.75.131 port 42004 ssh2 [root@node0 ~]# #上面就能夠準(zhǔn)確看出哪臺(tái)設(shè)備登陸失敗 [root@node0 ~]# grep Fail /var/log/secure | awk '{print $11}' |uniq -c1 192.168.75.131#uniq命令就是統(tǒng)計(jì)這個(gè)ip嘗試了多少次#awk命令就是用于取列,取出第11列的數(shù)值就是ip的數(shù)值

/var/log/wtmp文件的作用

? 這個(gè)文件也是可以記錄每個(gè)用戶登錄的次數(shù)和登錄的時(shí)間

? 通常last命令輸出wtmp中的內(nèi)容

[root@node0 ~]# last root pts/1 192.168.75.131 Sat Sep 25 11:34 still logged in root pts/0 192.168.75.1 Sat Sep 25 10:58 still logged in reboot system boot 3.10.0-957.el7.x Sat Sep 25 10:41 - 11:39 (00:57)

案例:

使用/var/log/btmp文件查看暴力破解系統(tǒng)的用戶

那么需要提前知道/var/log/btmp這個(gè)文件是用來(lái)干什么的,它是記錄錯(cuò)誤登錄系統(tǒng)的日志,如果發(fā)現(xiàn)/var/log/btmp這個(gè)文件的大小比較大,大于1M那么代表你的系統(tǒng)很可能遭到別人的暴力破解了;

也可以使用lastb命令查看

[root@node0 ~]# lastb root ssh:notty 192.168.75.130 Sat Sep 25 11:42 - 11:42 (00:00) root ssh:notty 192.168.75.130 Sat Sep 25 11:42 - 11:42 (00:00) root ssh:notty 192.168.75.130 Sat Sep 25 11:42 - 11:42 (00:00) root ssh:notty 192.168.75.131 Sat Sep 25 11:34 - 11:34 (00:00) root tty1 Fri Aug 27 23:37 - 23:37 (00:00) btmp begins Fri Aug 27 23:37:15 2021#如果發(fā)現(xiàn)了這個(gè)ip那么就可以使用防火長(zhǎng)來(lái)拒絕登錄 [root@node0 ~]# iptables -A INPUT -i ens32 -s 192.168.75.131 -j DROP#查看一下惡意ip登錄的次數(shù) [root@node0 ~]# lastb |awk '{print $3}' | sort|uniq -c | sort -n1 1 192.168.75.1312 Fri3 192.168.75.130

作為黑客:如果登錄了系統(tǒng),然后需要洗干凈里面的日志應(yīng)該如何處理?

[root@node0 ~]# > /var/log/btmp [root@node0 ~]# rm -rf /var/log/btmp && touch /var/log/btmp #這兩個(gè)方法有什么區(qū)別? 使用方法2,因?yàn)閯?chuàng)建了新的文件,而正在運(yùn)行的服務(wù),還用著原來(lái)文件的inode號(hào)和文件描述碼,所需要重啟一下rsyslog服務(wù)。建議使用方法1 > /var/log/btmp

日志的記錄方式

日志是分類記錄的,也可以是分級(jí)別記錄的

日志的分類

  • daemon 后臺(tái)進(jìn)程相關(guān)
  • kern 內(nèi)核產(chǎn)生的信息
  • lpr 打印系統(tǒng)產(chǎn)生的
  • authpriv 安全認(rèn)證
  • cron 定時(shí)相關(guān)
  • mail 郵件相關(guān)
  • syslog 日志服務(wù)本身的
  • news 新聞系統(tǒng)
  • local0~7 自定義的日志設(shè)備
  • local0-local7 8個(gè)系統(tǒng)保留的類, 供其它的程序使用或者是用戶自定義

如果日志按照級(jí)別來(lái)分類

  • debug 信息對(duì)開發(fā)人員調(diào)試應(yīng)用程序有用,在操作過(guò)程中無(wú)用
  • info 正常的操作信息,可以收集報(bào)告,測(cè)量吞吐量等
  • notice 注意,正常但重要的事件,
  • warning 警告,提示如果不采取行動(dòng)。將會(huì)發(fā)生錯(cuò)誤。比如文件系統(tǒng)使用90%
  • err 錯(cuò)誤,阻止某個(gè)模塊或程序的功能不能正常使用
  • crit 關(guān)鍵的錯(cuò)誤,已經(jīng)影響了整個(gè)系統(tǒng)或軟件不能正常工作的信息
  • alert 警報(bào),需要立刻修改的信息
  • emerg 緊急,內(nèi)核崩潰等嚴(yán)重信息

rsyslog日志服務(wù)講解

rhel5:使用的是syslog服務(wù)名,配置文件是/etc/syslog.conf

rhel6-7:使用的是rsyslog服務(wù)名,配置文件就是/etc/rsyslog.conf

#查看一下定義的內(nèi)容 [root@node0 ~]# vim /etc/rsyslog.conf #里面有很多內(nèi)容 *.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.* -/var/log/maillog cron.* /var/log/cron *.emerg :omusrmsg:* uucp,news.crit /var/log/spooler local7.* /var/log/boot.log#注釋: #$UDPServerRun 514 #允許514端口接收使用UDP協(xié)議轉(zhuǎn)發(fā)過(guò)來(lái)的日志 #$InputTCPServerRun 514 ##允許514端口接收使用TCP協(xié)議轉(zhuǎn)發(fā)過(guò)來(lái)的日志 #所有的類別級(jí)別是info以上 除了mail,authpriv,cron (產(chǎn)生的日志太多,不易于查看) 類別.級(jí)別 authpriv.* 認(rèn)證的信息存放 /var/log/secure mail.* 郵件相關(guān)的信息 存放 -/var/log/maillog cron.* 計(jì)劃任務(wù)相關(guān)的信息 存放 /var/log/cron local7.* 開機(jī)時(shí)顯示的信息存放--> /var/log/boot.log 注:“- ”號(hào): 郵件的信息比較多,現(xiàn)將數(shù)據(jù)存儲(chǔ)到內(nèi)存,達(dá)到一定大小,全部寫到硬盤.有利于減少I/O進(jìn)程的開銷 數(shù)據(jù)存儲(chǔ)在內(nèi)存,如果關(guān)機(jī)不當(dāng)數(shù)據(jù)消失

日志輸入的規(guī)則

. info 大于等于info級(jí)別的信息全部記錄到某個(gè)文件 .=級(jí)別 僅記錄等于某個(gè)級(jí)別的日志例:.=info 只記錄info級(jí)別的日志 .! 級(jí)別 除了某個(gè)級(jí)別意外,記錄所有的級(jí)別信息例.!err 除了err外記錄所有 .none 指的是排除某個(gè)類別 例: mail.none 所有mail類別的日志都不記錄

實(shí)戰(zhàn):

自定義ssh服務(wù)的日志類型和存儲(chǔ)位置

如果是自定義日志類型和存儲(chǔ)位置的話,我們就得修改配置文件/etc/rsyslog.conf

@rsyslog服務(wù)是管理日志類型的,所以需要指定一下位置[root@node0 ~]# vim /etc/rsyslog.conf #修改配置文件,大概位置在73行,添加新的內(nèi)容 local7.* /var/log/boot.log local0.* /var/log/sshd.log #添加這一行#把local0類別的日志,保存到/var/log/sshd.log的文件中

然后在把ssh服務(wù)的配置文件重新定義路徑

[root@node0 ~]# vim /etc/ssh/sshd_config #搜索找到SyslogFacility AUTHPRIV這一行#把這一行改為: SyslogFacility local0#然后重啟rsyslog服務(wù)-->優(yōu)先重啟 [root@node0 ~]# systemctl restart rsyslog.service #然后在重啟sshd服務(wù) [root@node0 ~]# systemctl restart sshd#ssh登陸測(cè)試 [liangjiawei@node0 ~]$ [root@node0 ~]# cat /var/log/sshd.log Oct 8 09:43:19 node0 sshd[7640]: Server listening on 0.0.0.0 port 22. Oct 8 09:43:19 node0 sshd[7640]: Server listening on :: port 22. Oct 8 09:44:58 node0 sshd[7641]: Accepted password for liangjiawei from 192.168.75.1 port 50616 ssh2#信息如下:時(shí)間、主機(jī)、服務(wù) 、進(jìn)程id 相關(guān)信息

如何防止日志刪除?

#之前學(xué)過(guò)隱藏屬性-a或者-i [root@node0 ~]# chattr +a /var/log/sshd.log #這個(gè)功能我們很少用了; [root@node0 ~]# chattr -a /var/log/sshd.log

3、實(shí)戰(zhàn)

日志切割-搭建遠(yuǎn)程日志收集服務(wù)器

那么什么是日志切割

在Linux下的日志會(huì)定期進(jìn)行滾動(dòng)增加,因此時(shí)間久了日志就會(huì)越來(lái)越多,因此我們可以通過(guò)日志定期的時(shí)間或者指定的大小進(jìn)行切割,這個(gè)是動(dòng)態(tài)的;

如果是今天的日志文件,也可以使用split工具進(jìn)行切割;

這里引入logrotate支持按照時(shí)間和大小來(lái)自動(dòng)切分,以防止日志文件太大

logrotate配置文件

[root@node0 ~]# rpm -ql logrotate /etc/cron.daily/logrotate /etc/logrotate.conf /etc/logrotate.d /etc/rwtab.d/logrotate /usr/sbin/logrotate /usr/share/doc/logrotate-3.8.6 /usr/share/doc/logrotate-3.8.6/CHANGES /usr/share/doc/logrotate-3.8.6/COPYING /usr/share/man/man5/logrotate.conf.5.gz /usr/share/man/man8/logrotate.8.gz /var/lib/logrotate /var/lib/logrotate/logrotate.status

logrotate的執(zhí)行由crond服務(wù)調(diào)用的;

查看一下logrotate腳本的內(nèi)容;

這里發(fā)現(xiàn)logrotate程序每天都是由cron在指定的時(shí)間(/etc/crontab)啟動(dòng)

日志每天積累就會(huì)變成很大如果你需要及時(shí)查看出某一天的日志信息的話就需要使用到日志切割

[root@node0 ~]# vim /etc/cron.daily/logrotate #!/bin/sh/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0

日志切割的說(shuō)明

/var/lib/logrotate/status文件中記錄了logrotate上次輪換日志文件的時(shí)間;

#編寫日志的配置文件logrotate [root@node0 ~]# vim /etc/logrotate.conf #通常編輯配置文件我們都需要備份一份,以免改錯(cuò) [root@node0 ~]# cp /etc/logrotate.conf /backup/ [root@node0 ~]# ls /backup/ logrotate.conf[root@node0 ~]# grep -vE "^#|^$" /etc/logrotate.conf weekly rotate 4 create dateext include /etc/logrotate.d /var/log/wtmp {monthlycreate 0664 root utmpminsize 1Mrotate 1 } /var/log/btmp {missingokmonthlycreate 0600 root utmprotate 1 }#全局參數(shù)說(shuō)明如下: [root@node0 ~]# grep -vE "^#|^$" /etc/logrotate.conf weekly #每周執(zhí)行回滾,或者是每周執(zhí)行一次日志回滾; rotate 4 #表示日志切分后歷史文件最多保存離現(xiàn)在最近的多少份,旋轉(zhuǎn) create #指定新創(chuàng)建的文件的權(quán)限以及所有者與所屬組 dateext #使用日期為后綴的回滾文件,也可以去/var/log目錄下看看 include /etc/logrotate.d /var/log/wtmp {monthly #日志文件按照月份來(lái)輪詢;daily、weekly、yearlycreate 0664 root utmpminsize 1Mrotate 1 } /var/log/btmp { #指定的日志文件名稱missingok #如果文件丟失不會(huì)報(bào)錯(cuò)monthly #每月輪換一次create 0600 root utmp #設(shè)置btmp這個(gè)日志文件的權(quán)限,所有者以及所屬組rotate 1 #日志切分后歷史文件最多保存一份,不會(huì)涵蓋當(dāng)前使用的日志 }#還有其他的選項(xiàng)說(shuō)明 compress: 在輪循任務(wù)完成后,已輪循的歸檔將使用gzip進(jìn)行壓縮。 delaycompress: 總是與compress選項(xiàng)一起用,delaycompress選項(xiàng)指示logrotate不要將最近的歸檔壓縮,壓縮將在下一次輪循周期進(jìn)行。這在你或任何軟件仍然需要讀取最新歸檔時(shí)很有用。 missingok: 在日志輪循期間,任何錯(cuò)誤將被忽略,例如“文件無(wú)法找到”之類的錯(cuò)誤。 notifempty: 如果日志文件為空,輪循不會(huì)進(jìn)行。 create 644 root root: 以指定的權(quán)限創(chuàng)建全新的日志文件,同時(shí)logrotate也會(huì)重命名原始日志文件。 postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令將被執(zhí)行。在這種情況下,rsyslogd 進(jìn)程將立即再次讀取其配置并繼續(xù)運(yùn)行。 /var/lib/logrotate/status中默認(rèn)記錄logrotate上次輪換日志文件的時(shí)間。

實(shí)戰(zhàn)-使用logrotate進(jìn)行ssh日志切割

這里需要定義ssh日志存儲(chǔ)在/var/log/sshd的基礎(chǔ)之上

#首先需要?jiǎng)?chuàng)建一個(gè)sshd的配置文件,指定切割的規(guī)則 [root@node0 ~]# vim /etc/logrotate.d/sshd /var/log/sshd.log{missingok #定義了文件丟失不會(huì)報(bào)錯(cuò)weekly #定義了一周輪換一次create 0600 root root #設(shè)置btmp這個(gè)日志文件的權(quán)限,所有者以及所屬組minsize 1M #定義了日志的大小最小1Mrotete 3 #備份的數(shù)量為3分 }#重啟rsyslog服務(wù) [root@node0 ~]# systemctl restart rsyslog#使用logrotate命令來(lái)預(yù)演日志輪詢 [root@node0 ~]# logrotate -d /etc/logrotate.d/sshd reading config file /etc/logrotate.d/sshd Allocating hash table for state file, size 15360 B Handling 1 logs rotating pattern: /var/log/sshd.log weekly (3 rotations) empty log files are rotated, only log files >= 1048576 bytes are rotated, old logs are removed considering log /var/log/sshd.loglog does not need rotating ('misinze' directive is used and the log size is smaller than the minsize value#強(qiáng)制輪詢,也就是說(shuō)即使輪詢條件沒(méi)有滿足也可以通過(guò)加-f強(qiáng)制讓logrotate輪詢?nèi)罩疚募?/span> -v:顯示指令執(zhí)行過(guò)程 -f:強(qiáng)制執(zhí)行 [root@node0 ~]# logrotate -vf /etc/logrotate.d/sshd [root@node0 ~]# ls /var/log/sshd.log sshd.log sshd.log.1 #再次查看日志文件,文嘉大小為0 [root@node0 ~]# ls /var/log/sshd.log -l -rw------- 1 root root 0 1017 08:03 /var/log/sshd.log

實(shí)戰(zhàn)-使用logrotate進(jìn)行nginx日志切割

使用nginx的日志切割與使用sshd的日志切割的方法是一樣的;需要在/etc/logrotate.d/目錄下新建一個(gè)nginx,并且制定切割規(guī)則

[root@node0 ~]# vim /etc/logrotate.d/nginx #編寫切割日志規(guī)則 /usr/local/nginx/logs/*.log{ #指定日志文件位置,可用正則匹配daily #調(diào)用頻率,有:daily,weekly,monthly可選rotate 5 #一次將存儲(chǔ)5個(gè)歸檔日志,對(duì)于第六個(gè)歸檔,時(shí)間最久的歸檔將被刪除;sharedscripts #所有的日志文件都輪轉(zhuǎn)完畢后統(tǒng)一執(zhí)行一次腳本postrotate #執(zhí)行腳本的開始標(biāo)志 if [ -f /usr/local/nginx/logs/nginx.pid ];then #判斷nginx是否啟動(dòng)/usr/local/nginx/sbin/nginx -s reload #重載配置文件 fi endscript }

實(shí)戰(zhàn):遠(yuǎn)程日志日志服務(wù)器日志集中管理

這里需要兩臺(tái)服務(wù)器,一臺(tái)是server,一臺(tái)是client

規(guī)劃:

server:192.168.75.131

client:192.168.75.130–>客戶端把自己的日志發(fā)送;

server端的配置如下:

#編輯配置文件 [root@Node1 ~]# vim /etc/rsyslog.conf #使用TCP協(xié)議方式,收集日志#把19行和20行的內(nèi)容19 #$ModLoad imtcp20 #$InputTCPServerRun 514 #注意:使用UDP協(xié)議-->速度快,但是不保證數(shù)據(jù)的完整性,使用TCP協(xié)議就安全可靠,完整 改為:19 $ModLoad imtcp20 $InputTCPServerRun 514#然后重新啟動(dòng)rsyslog服務(wù) [root@server ~]# systemctl restart rsyslog#查看服務(wù)監(jiān)聽的狀態(tài): [root@server ~]# netstat -anlpt |grep 514 tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 8366/rsyslogd tcp6 0 0 :::514 :::* LISTEN 8366/rsyslogd #在服務(wù)端關(guān)閉selinux和防火墻 [root@server ~]# getenforce Disabled [root@server ~]# systemctl stop firewalld [root@server ~]# systemctl status firewalld

客戶端配置

[root@client ~]# vim /etc/rsyslog.conf #在末行添加92 *.* @@192.168.75.131:514#*.*代表的是所有類別和級(jí)別的日志#后面的是遠(yuǎn)程TCP協(xié)議的日志服務(wù)端IP和端口#然后重啟rsyslog服務(wù)[root@client ~]# systemctl restart rsyslog.service

驗(yàn)證:

#動(dòng)態(tài)監(jiān)測(cè)server端的日志 [root@server ~]# tail -f /var/log/messages | grep client --color#然后在client端發(fā)送點(diǎn)東西給到server端 [root@client ~]# logger "hello the word" #然后服務(wù)器端就會(huì)有東西 [root@server ~]# tail -f /var/log/messages | grep client --color Oct 17 08:33:37 client systemd: Stopping System Logging Service...

總結(jié)一下:

服務(wù)器使用UDP協(xié)議,客戶端只能使用配置文件中的這一行只能有一個(gè)@ *.* @192.168.75.131:514 服務(wù)器使用的tcp協(xié)議,客戶端只能使用的配置文件中這一行必須有兩個(gè)@@ *.* @@192.168.75.131:514

總結(jié)

以上是生活随笔為你收集整理的计划任务以及日志管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久国产精品午夜一区 | 欧美影院一区 | av手机 | 四虎8848 | 国产av无码专区亚洲a∨毛片 | 狠狠干狠狠操视频 | 性折磨bdsm欧美激情另类 | 免费a级大片 | 伊人逼逼 | 一级一片免费看 | 国模少妇一区二区三区 | 九九综合九九综合 | 男女日批免费视频 | 精品一级少妇久久久久久久 | 好吊操视频这里只有精品 | 国产精品一区二区人人爽 | 日日夜夜精品免费视频 | 天降女子| 日本久操视频 | 九九久久免费视频 | 少妇日b| 丰满秘书被猛烈进入高清播放在 | 日本三级吃奶头添泬无码苍井空 | 美国黄色一级毛片 | 永久免费看片在线观看 | 在线一区二区三区四区五区 | 白丝一区 | 法国少妇愉情理伦片 | 精东传媒在线 | 国产黄色在线 | 一区二区三区免费观看视频 | 97无码精品人妻 | 一区二区免费看 | 免费婷婷 | 日韩精品一区二区三区国语自制 | 熟睡人妻被讨厌的公侵犯 | 亚洲精品影院在线 | 欧美熟妇另类久久久久久多毛 | 色一区二区三区四区 | 国产欧美一区二区在线观看 | 亚洲精品~无码抽插 | 欧美一区二区国产 | 亚洲永久无码精品 | 欧产日产国产精品 | wwwxxx在线 | 青青青青青青草 | 日本无翼乌邪恶大全彩h | 日韩精品片 | 久久久久一级片 | 欧美日p视频 | 逼逼爱插插网站 | 日本丰满少妇一区二区三区 | 欧美成人a视频 | av天堂一区| 国产精品亚洲二区在线观看 | 青青草在线免费观看 | 天天干精品 | 国产精品久久久久久久久久久免费看 | 国产午夜精品福利 | 国产精品自拍偷拍视频 | 日韩成人av片 | 黄色一级一片免费播放 | 成人三区| 91视频免费视频 | 日本一区二区黄色 | 国产乱码久久久 | 亚洲欧美第一 | 老司机性视频 | 麻豆av影视| 天天草天天操 | 国产在线观看中文字幕 | 高hnp视频| 大陆熟妇丰满多毛xxxⅹ | 蜜桃精品视频在线 | www.污网站| 暗呦丨小u女国产精品 | 在线成人毛片 | 少妇网站在线观看 | 亚洲三级在线观看 | 久久精品国产一区二区 | 国产黄色在线网站 | 日本视频不卡 | 国产精品久久久久久久久久免费 | 琪琪色在线视频 | 成人在线免费观看网站 | av国产成人 | 少妇免费直播 | 亚州av综合色区无码一区 | 黑白配高清国语在线观看 | 日韩av有码 | 伦伦影院午夜理伦片 | 欧美一区二区在线观看 | 日本视频h | 国产欧美一区二区三区在线看蜜臀 | 美女又黄又免费 | 日韩欧美视频免费观看 | www.精品在线 | 国产毛片一区二区三区va在线 | 91毛片观看 |