設置如下:
成都創新互聯服務項目包括遠安網站建設、遠安網站制作、遠安網頁制作以及遠安網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,遠安網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到遠安省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
1)通過命令【crontab -e】編寫計劃任務
2)按【i】鍵編寫,最后按【esc】【:wq】保存并退出
Linux系統的知識你可以看黑馬程序員視頻庫的Linux教程,零基礎都能學的。
crontab -l
列出用戶計劃任務
? ? -e? ? ? (edit user's crontab)
? ? -l? ? ? (list user's crontab)
? ? -r? ? ? (delete user's crontab)
? ? -i? ? ? (prompt before deleting user's crontab)
linux計劃任務crontab配置文件中的最后一個星星代表所有可能的值
crontab命令用于設置周期性被執行的指令。該命令從標準輸入設備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執行。
cron 系統調度進程。 可以使用它在每天的非高峰負荷時間段運行作業,或在一周或一月中的不同時段運行。cron是系統主要的調度進程,可以在無需人工干預的情況下運行作業。crontab命令允許用戶提交、編輯或刪除相應的作業。每一個用戶都可以有一個crontab文件來保存調度信息。系統管理員可以通過cron.deny 和 cron.allow 這兩個文件來禁止或允許用戶擁有自己的crontab文件。
什么是計劃任務,計劃任務類似于我們平時生活中的鬧鐘。
在Linux系統的計劃任務服務crond可以滿足周期性執行任務的需求。
crond進程每分鐘會處理一次計劃任務, 計劃任務主要是做一些周期性的任務目前最主要的用途是定時備份數據
Schedule one-time tasks with at. 一次性調度執行 at
Schedule recurring jobs with cron. 循環調度執行 cron
Schedule recurring system jobs. 所有計劃任務執行中的輸出都會以郵件的方式發送給指定用戶, 除非重定向
// 循環調度執行cron 進程每分鐘會處理一次計劃任務
[root@wangqing ~] # systemctl status crond
[root@wangqing ~] # ps aux |grep crond
root 1201 0.0 0.0 126264 1640 ? Ss 11 : 15 0 : 00 /usr/sbin/crond -n
計劃任務分為以下兩種情況:
系統級別的定時任務:
清理系統緩存
臨時文件清理
系統信息采集
日志文件切割
用戶級別的定時任務:
定時同步互聯網時間
定時備份系統配置文件
定時備份數據庫文件
文件 說明 /etc/crontab / /crontab配置文件 /etc/cron.deny / /該文件中所列用戶不允許使用crontab命令 /var/spool/cron/ * // 所有用戶定時文件都存放此目錄,文件以用戶名命名 /var/log/cron / /定時任務執行后的日志文件,可用來回溯
crond任務管理
參數 含義 指定示例
[root@wangqing ~] # crontab --help -e 編輯crontab文件內容 crontab -e-l 查看crontab文件內容 crontab -l
-r 刪除crontab文件內容 crontab -r
-u 管理其他用戶的計劃任務 crontab -u wangqing -l
注意: crontab {-l -e}實際上就是在操作/var/spool/cron/username
//如何進行計劃任務的備份?
crond時間含義
# 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 //星期 # | | | | |# * * * * * command to be executed
// * 表示任意的(分、時、日、月、周)時間都執行// - 表示一個時間范圍段, 如5-7點// , 表示分隔時段, 如6,0,4表示周六、日、四// */n 表示每隔n單位時間, 如*/10 每10分鐘
crond編寫示例
00 02 * * * command
00 02 1 * * command
00 02 14 2 * command
00 02 * * 7 command
00 02 * 6 5 command
00 02 14 * 7 command
00 02 14 2 7 command
00 02 * * * command* 02 * * * command* * * * * command* * 14 2 * command*/5 * * * * command
00 02 * 1,5,8 * command
00 02 1-8 * * command
crond書寫規范
//1.為計劃任務增加必要的注釋
[root@wangqing ~]# crontab -l
##time sync
* /5 * * * * /u sr/sbin/ntpdate time1.aliyun.com /dev/ null
//2.規范計劃任務執行腳本存放的路徑/scripts/
[root@wangqing ~]# crontab -l
##backup www to /backup 30 01 * * * /bin/ sh /scripts/www_backup.sh /dev/ null
//3.執行shell腳本任務前加/bin/sh, 腳本結尾加/dev/null//調試好后應屏蔽debug輸出信息,避免產生系統垃圾占用過多inode, 如需輸出日志, 可重定向至日志文件
[root@wangqing ~]# crontab -l
####backup www to /backup 30 01 * * * /bin/ sh /scripts/www_backup.sh /tmp/ www_backup.log
[root@wangqing ~] # crontab -e
#每天凌晨切割nginx日志 05 00 * * * /bin/bash -x /scripts/cut_nginx.sh /scripts/ log /nginx. log
#每天5點備份數據庫 00 05 * * * /bin/bash -x /scripts/dump_sql.sh /scripts/ log /mysql. log
//注意: 1. 我們所有的crond服務是運行的程序。而crontab命令用戶用來設置定時規則的命令。 2. crond服務是企業生產工作中常用的重要服務,at很少使用,可以忽略。 3. 幾乎每個服務器都會用到crond服務。
建議: 將需要定期執行的任務寫入腳本中, 建立/scripts目錄統一存放腳本, 腳本中命令必須使用絕對路徑,手動執行腳本檢測輸出是否正常, 然后將腳本加入計劃任務測試, 測試后無問題將腳本輸出寫入對應的日志文件中即可。
計劃任務添加步驟:
作業:
a. 00 13,20 * 1-5 * backup.sh
b. 0 13,20 1,5 * * backup.sh
c. * 13,20 * * 1-5 backup.sh
d. 00 13,20 * * 1-5 backup.sh
說明以上答案每一行是什么含義
2.新建/scripts/httpd.sh文件,并讓/scripts/httpd.sh腳本在每天的00:10分執行
3.新建/backup目錄,每周一下午5:50將/backup目錄下的所有文件打包成 backup.tar.gz
4.寫一個定時任務,每天0點5分把/var/log/nginx下7天前的文件轉移到/backup/2018_xx_xx的目錄中
5.系統腳本/scripts/which.sh,如何定時每隔7分鐘執行一次?
6.如何不小心刪除了/var/spool/cron/root文件,該如何恢復。
/p3.toutiaoimg.com/origin/tos-cn-i-qvj2lq49k0/49da2da0342544a6a4c02f2aa442d537","uri":"","width":323,"height":27,"darkImgUrl":"","darkImgUri":"","formulaImgStatus":"succeed"}" class="syl-plugin-formula"
常用選項:
-l 查看作業隊列,相當于atq
-f 從某個指定文件文件中讀取作業任務,不通過交互式輸入。
-d 刪除指定的作業任務,相當于atrm。
-c 查看指定作業具體內容。
-q QUEUE指明隊列。
TIME時間格式有:
HH:MM 小時:分鐘 例如04:00
HH:MM YYYY-MM-DD 小時:分鐘 年-月-日 例如15:00 2017-11-25
HH:MM[am|pm] [Month] [Date] 例如:04pm July 30
HH:MM[am|pm] + number [minutes|hours|days|weeks]在某個時間點再加幾個時間后執行
例如:now + 5minutes 5分鐘后執行
04pm + days三天后下午4點執行
[root@dxlcentOS ~]# at 15:55 2017-11-25 在15點55分執行:切換到tmp目錄,執行ls命令
at cd /tmp
at ls
at EOT
job 3 at Sat Nov 25 15:55:00 2017
注意:輸入結束后按ctrl+d,任務輸入結束at EOT,執行結果屏幕不會顯示,會以郵件形式發送到郵箱。要是沒有mail命令,進行yum -y install mailx安裝。
執行周期性任務要確保crond守護進程在運行。
執行pstree,要是crond運行起來可以看到。
或者執行:~]# systemctl status crond (centos7)
Active: active (running) ... ...
centos6:~]# service crond status
... is running
有時候為了安全起見,可以將不允許某些用戶執行周期性任務的用戶名添加到/etc/cron.deny文件里面即可。
cron任務分類:分系統cron任務和用戶cron任務
總結:1.cron周期任務最小時間單位是分鐘。
2.定義COMMAND時,如果命令需要用到%,需要對其轉義;但放置于單引號中的%不用轉義亦可。
3.某任務在指定的時間因關機未能執行,下次開機不會自動執行。
4.當修改之前定好的任務或新增循環任務時最好執行一下systemctl restart crond。
5.如果是系統管理使用的循環任務最好寫入/etc/crontab。
6.避免系統資源分配不均,周與日月不可以同時并存。
cron循環任務設定后,要是服務器因意外關機,那么在停機期間,cron設定的循環任務是不會運行的,當服務器開機后,也不會執行過去到達時間點的循環任務,只能等待下個時間點到來才執行。要想重新執行,anacron就可以解決這個問題。
anacron 是一個程序不是一個服務,當centos進入crontab排程時,anacron 會主動每一小時運行一次。
對于系統管理員而言,做系統備份是一個系統管理員非常重要的工作,但是每天重復的工作是一件非常繁瑣的工作,那有沒有一種方法可以讓系統每天每到固定的時間都自己做備份工作呢?答案是有的,那就是計劃任務,現在我們就來說說計劃任務是怎么一回事,以及怎么去實現它
一般來說計劃任務分兩種一次性計劃任務和周期性計劃任務
1, 一次性計劃任務:顧名思義一次性計劃任務就是在某一個時間點只執行一次的任務,例如像,下周一有約會需要提醒這樣只執行一次的任務,
命令at ,batsh實現一次性計劃任務
At的用法:at time
例如 at 10:29 就是指在10:29 分執行的任務
執行的結果如下
At 命令的時間格式非常靈活我們可以使用
At now+1min
At 11:54
At date 等在這里不再贅述
Batsh 命令是指在系統空閑時執行的一次性計劃任務,比如你有一件不太重要的任務需要執行,當重要的任務執行完才會執行
Batsh 的用法
Batsh 回車 然后輸入你要執行的任務
2, 周期性計劃任務 :周期性計劃任務指的是每隔一段時間就執行一次的任務,比如鬧鐘每天早上六點叫你起床 命令 cron
(1) 加載cron 模塊crond:crond是一種服務一般情況下crond是默認加載的但是也不排除有特出情況
Modprobe crond
(2) crond服務操作 survice crond {start|status|stop|restart}
start 啟動crond
status查看crond的運行狀態
stop 停止crond服務
restart 重啟crond服務
(3) crond的分類 :系統crond和用戶crond
系統crond 是系統運行所需要的crond服務 /etc/crontab
用戶crond使用戶定義的crond服務/var/spool/cron/USERNAME
(4) cron 的書寫格式 min hour day month week command
共六段 第一段min 指分鐘,第二段hour指小時,第三段day指天,第四段mouth指月份,第五段week指周,第六段command指你要執行的命令例如
10 1 * * 7 ls –l /etc 指的是 每周末的一點10分執行ls –l /etc命令
在字段中的*指在指定的時間域上所有的時間
—對應時間域上的連續取值時間 如1-10 1到10
,表示對應時間域上離散的時間取值如 1,10指的是1和10
/表示在對應時間域上每隔多久進行一次取值
如 1-10 1 * * 7 ls –l /etc指的是每周末的一點1-10分每分鐘執行ls –l /etc命令
1,10 1 * * 7 ls –l /etc指的是每周末的一點1分和10分時分別執行ls –l /etc命令
*/10 1 * * 7 ls –l /etc每周末的一點每隔10分鐘執行ls –l /etc命令
(5) 說了這么多那到底怎么才能定義自己的計劃任務呢?
Crond –e 打開編輯文本然后輸入要定義計劃任務
如1,10 1 * * 7 ls –l /etc
保存并退出 一個計劃任務就做好了
我們來看看怎么定義在每天晚上的凌晨把系統備份
管理員還可以為其他用戶定制計劃任務 使用 crontab –u username
Crontab –l 可以查看已經定義的計劃任務
Crontab –r 移除已將定義的計劃任務
(6) Crond 只能在Linux系統啟用的時候進行工作,當計劃任務所在的時間Linux系統處于不工作狀態那我們能不能在Linux啟動后的一段時間內將沒有做的計劃任務給補上呢?檔案是肯定的我們使用anacrond命令來是以這一功能
Anacron的命令格式 day min 說明信息 run-parts /etc/cron.daiy
Day 指過去多長時間沒有執行過命令 min 指啟動后多長時間執行
如 1 65 run-parts /etc/cron.daily 指一天沒有運行過時 啟動后65分鐘后執行任務計劃
網站欄目:計劃任務命令linux,計劃任務命令 每天
當前地址:http://vcdvsql.cn/article26/hsppjg.html
成都網站建設公司_創新互聯,為您提供企業建站、關鍵詞優化、小程序開發、定制開發、網站收錄、靜態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯