系統管理-計劃任務-系統日誌

at計劃任務簡介

使用at命令,能夠指定某一任務(做業)在未來的特定時間運行。該做業多是一次備份,系統檢查或者特定時間發送通知。該任務會在與shell會話斷開鏈接的狀況下運行。html

在特定時間內執行任務後,在該任務會在at的任務隊列中關閉。若是任務重沒有作輸出重定向,那麼輸出的任務會以郵件的方式給用戶結果。shell

輸入at命令後,按回車鍵並繼續鍵入做業中不包含的其餘命令。任務能夠有多個命令組成,在完成鍵入要運行的命令時,在單獨出現的一行中按Ctrl+D完成任務安全

[root@localhost ~]# at 09:00
at> ls
at> date
job 1 at Tue Aug 28 09:00:00 2018
[root@localhost ~]# at -l
您在 /var/spool/mail/root 中有新郵件
[root@localhost ~]# atrm 1
Cannot find jobid 1
[root@localhost ~]# 
郵件內容:
anaconda-ks.cfg
Desktop
initial-setup-ks.cfg
Python-3.5.3
Python-3.5.3.tgz
test
2018年 08月 28日 星期二 09:00:01 CST

cron 計劃任務簡介

相比較at的任務執行一次,crontab能夠設置一個時間點,每次到了這個時間均可以自動執行任務。和at同樣,若是任務重沒有作輸出重定向,那麼任務的輸出會以郵件的方式發送給用戶。服務器

crontab [-l|-r|-e]ssh

crontab -e命令將打開空的crontab文件(man 5 crontab)ui

任務中包含6個字段this

分: 0-59url

時: 0-23spa

日: 1-31debug

月: 1-12

周: 0-7

命令: xxx

05 * * * * 每小時整點過5分鐘
05 02 * * * 天天2:05(早上)
30 08 01 * * 每月第一天的8:30(早上)
00 07 25 12 * 12月25日7:00(早上)
30 16 * * 5 每一個星期五下午16:30
*/5 * * * * 每五分鐘(051015*/10 9-10 1,15 * * 每月第一天和第十五天9:00到10:00之間每隔10分鐘
0 0 1 1 0 1月1日的每一個週末

系統級計劃任務

[root@localhost mail]# ls /etc/cron*
/etc/cron.deny  /etc/crontab

/etc/cron.d:
0hourly  raid-check  sysstat

/etc/cron.daily:
logrotate  man-db.cron  mlocate

/etc/cron.hourly:
0anacron

/etc/cron.monthly:

/etc/cron.weekly:
[root@localhost mail]# 

Linux日誌機制

systemd-journal收集日誌消息

rsylog排序並保存消息到/var/log中的日誌文件

rsyslog.conf的左邊條目是「selector」,右邊是「action」

/var/log/messages 大多數系統消息都記錄在這裏。除了相關驗證的消息,郵件處理,按期運行的做業,純調試相關的

/var/log/secure 該日誌記錄安全和相關驗證的消息和錯誤

/var/log syslog 保存全部日誌文件的目錄

/var/log/maillog保存相關郵件服務器的消息

/var/log/cron 保存相關按期執行任務的日誌

查閱日誌文件

tail -f命令

logger

查閱systemed日誌條目

systemd日誌提供了內置搜索和過濾的功能來找到有關潛在問題或系統狀態的信息

journalctl命令

journalctl -n 命令限制必定數量行的輸出

journalctl -p 命令限制必定優先級消息的輸出

journalctl -f 相似tail -f的工做

journalctl -b 命令限制輸出特定的啓動

journalctl --since 和 journal --until限制輸出的時間範圍

輸出服務器上一直運行的pid爲1,源於systemd的進程

journalctl_PID = 1

顯示服務器上uid爲81的用戶啓動的系統服務的systemd日誌消息

journalctl_UID = 81

在服務器輸出priority爲warning的日誌消息

journalctl -p warning

建立journalctl查詢,顯示服務器以前10分鐘記錄的全部日誌事件,假設當前時間 9:15:00

journalctl --since 9:05:00 --unitl 9:15:00

僅顯示服務器上sshd服務的事件,從早上9:00:00開始直到記錄sshd.service

journalctl --since 9600600 _SYSTEMD_UNIT="sshd.service"

保存systemd日誌

配置systemd-journald存儲日誌到磁盤上而不是內存中

日誌在重啓以後持久保存,所以用戶可使用journalctl的高級功能,對最後一次系統啓動以前的消息

systemd日誌寫入到磁盤

配置systemd日誌在重啓以後能夠持久訪問

配置目錄/var/log/journal

[root@localhost mail]# mkdir /var/log/journal
[root@localhost mail]# chown root:systemd-journal /var/log/journal/
[root@localhost mail]# chmod 2755 /var/log/journal/
[root@localhost mail]# 

發送USR1信號給systemd-journald或者從新啓動服務

killall -USR1 systemd-journald

驗證保存到/var/log/journal下的日誌文件

[root@localhost mail]# ls /var/log/journal/17864a38d41d4b6e860d389f6c75531b/
system.journal
[root@localhost mail]# 

日誌服務:

Server:

man 5 rsyslog.conf

[root@localhost mail]# cat /etc/rsyslog.conf 
# rsyslog configuration file

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html

#### MODULES ####
[root@localhost mail]# tail -f /var/log/messages^C
[root@localhost mail]# service rsyslog restart
Redirecting to /bin/systemctl restart rsyslog.service
[root@localhost mail]# cat /etc/rsyslog.conf 
# rsyslog configuration file

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html

#### MODULES ####
[root@localhost mail]# service rsyslog restart
Redirecting to /bin/systemctl restart rsyslog.service
[root@localhost mail]# logger -i -t "test" hello,this is test message
[root@localhost mail]# 

日誌輪轉logrotate

將「輪轉」日誌,以免日誌佔滿包含/var/log的文件系統,輪轉日誌文件時,使用擴展名對其進行重命名,擴展名中指示輪轉日期:

[root@localhost mail]# ls /var/log/
anaconda           cups                ntpstats           tallylog
audit              dmesg               pluto              tuned
boot.log           firewalld           ppp                vmware-vgauthsvc.log.0
boot.log-20180821  gdm                 qemu-ga            vmware-vmsvc.log
boot.log-20180822  glusterfs           rhsm               wpa_supplicant.log
boot.log-20180823  grubby_prune_debug  sa                 wtmp
boot.log-20180824  journal             samba              Xorg.0.log
boot.log-20180827  lastlog             secure             Xorg.1.log
boot.log-20180828  libvirt             secure-20180828    Xorg.9.log
btmp               maillog             speech-dispatcher  yum.log
chrony             maillog-20180828    spooler
cron               messages            spooler-20180828
cron-20180828      messages-20180828   sssd
[root@localhost mail]# 

cron做業每日運行一次logrotate程序,以查看是否有任何日誌須要輪轉。

大多很多天志文件每週輪轉一次,可是logrotate輪轉文件的速度有時候較快,有時候較慢,或者在文件達到特定大小時進行輪轉

[root@localhost mail]# 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
}

# system-specific logs may be also be configured here.
[root@localhost mail]# 
相關文章
相關標籤/搜索