在linux作業系統中, 除了使用者即時執行的命令操作以外,我們有時還需要配置在指定的時間、指定的日期執行預先計畫好的系統管理任務(如定期備份、定期採集監測資料)。
rhel6系統中預設已安裝了at、crontab軟體包,通過atb和crond(程序名)這兩個系統服務實現一次性、週期性計畫任務的功能,並分別通過at、arontab命令進行計畫任務設定。
作用:計畫任務主要是做一些週期性的任務,目前主要是用於做定期備份資料
語法格式
at 《時間規格》
now +5min
teatime tomorrow (teatime is 16:00)
例如:
[root@xifeng ~]# at now +1min # 一分鐘後執行
at> mkdir users
at> #ctrl + d
job 11 at mon nov 16 16:24:00 2020
[root@xifeng ~]# ls
users
[root@xifeng ~]# yum -y install crontabs #如果軟體不存在安裝
[root@xifeng ~]# systemctl status crond.service #檢視服務狀態
crond程序每分鐘會處理一次計畫任務
[root@xifeng ~]# ps -ef | grep crond
root 860 1 0 11:01 ? 00:00:00 /usr/sbin/crond -n
root 96291 1298 0 16:29 pts/0 00:00:00 grep --color=auto crond
儲存位置:
[root@xifeng ~]# cd /var/spool/cron/
管理方式:
crontab -llist the jobs for the current user. //列出當前使用者的計畫任務
crontab -rremove all jobs for the current users. //刪除當前使用者所有的計畫任務
crontab -eedit jobs for the current user. //編輯當前使用者的計畫任務
管理員可以使用 -u username, 去管理其他使用者的計畫任務
語法格式:
* * * * * command
分鐘 小時 日 月 周 要執行的命令,最好是絕對路徑
每天6:00執行ini
0 6 * * * /home/soso.sh
每天8:40執行
40 8 * * * /home/soso.sh
每週六凌晨4:00執行
0 4 * * 6 /home/soso.sh
每週六凌晨4:05執行
5 4 * * 6 /home/soso.sh
每週六凌晨5:00執行
0 5 * * 6 /home/soso.sh
[root@xifeng ~]# crontab -l #列出計畫任務
[root@xifeng ~]# crontab -u jack -e #使用jack使用者建立
由於日誌每天的累積量會很大,如果不進行分割的話會造成單個日誌太大,開啟以及檢視都很不方便。
日誌輪轉可以丟棄系統中最舊的日誌檔案,以節省空間。
logrotate本身不是系統守護程序,它是通過計畫任務crond每天執行
vim /etc/logrotate.conf #日誌輪轉的配置檔案
weekly #輪轉的週期,一周輪轉,單位有年,月,日
rotate 4 #保留4份
create #輪轉後建立新檔案
dateext #使用日期作為字尾
#compress #日誌輪替時,舊的日誌進行壓縮
include /etc/logrotate.d #包含該目錄下的配置檔案,會引用該目錄下面配置的檔案
/var/log/wtmp
/var/log/btmp
[root@xifeng ~]# /usr/sbin/logrotate /etc/logrotate.conf #手動輪轉
[root@xifeng ~]# ls /var/log/yum*
/var/log/yum.log /var/log/yum.log-20191110
windows計畫任務和linux計畫任務
有時候需要定時執行任務,如果寫乙個死迴圈在那裡等待,算是乙個方案,但總是覺得有那麼一點不好,既然作業系統為我們提供了計畫任務,為什麼不用呢?如果不用別人的東西,基本上會有三個原因 一 不知道有那個東西。二 覺得那個東西不易用。三 沒有自己的方案好。關於計畫任務完全可以排除以上三點原因,所以還是應該用...
Linux CentOS 伺服器搭建 《六》
二話不說先登入 mysql u root p檢視下神奇的mysql系統變數及其值 show variables like character 記住分號哦,愛打字的人 步驟開始了 1.找到mysql配置檔案,拷貝到etc的my.cnf並且覆蓋哦。usr share doc mysql server 5...
Linux CentOS 伺服器搭建 《六》
二話不說先登入 mysql u root p檢視下神奇的mysql系統變數及其值 show variables like character 記住分號哦,愛打字的人 步驟開始了 1.找到mysql配置檔案,拷貝到etc的my.cnf並且覆蓋哦。usr share doc mysql server 5...