❶ linux命令crontab -l會顯示當前crontab的內容,怎樣才可以顯示指定文件的路徑
可以使用crontab-l命令列出文件的全部信息,crontab -l顯示的內容將包括的文件路徑;
示例:
$crontab-l
#(crondaveinstalledonTueMay413:07:431999)
#DT:
0,15,30,4518-06***/bin/echo`date`>/dev/tty1
#DT:deletecorefiles,at3.30amon1,7,14,21,26,26daysofeachmonth
3031,7,14,21,26**/bin/find-name"core'-execrm{};
❷ linux 中的crontab使用方法
噢,你把這個文件保存下來嘛。
然後你運行 crontab -e
然後在vi編輯器里輸入
*/5 * * * * root ./temp.sh
然後保存就可以了。
crontab的具體用法我復一個文檔給你。
噢,下午已有一個高手回答了,答得很簡略也很實用。你可以聽他的。
*************************************************************
linux 下的crontab如何寫
wscdlzhom發布於 2008-2-24 | 439次閱讀 字型大小: 大 中 小 (網友評論 0 條) 我要評論
crontab命令的功能是在一定的時間間隔調度一些命令的執行。在/etc目錄下有一個crontab文件,這里存放有系統運行的一些調度程序。每個用戶可以建立自己的調度crontab。
cron 的主配置文件是 /etc/crontab,它包括下面幾行:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
前四行是用來配置 cron 任務運行環境的變數。SHELL 變數的值告訴系統要使用哪個 shell 環境(在這個例子里是 bash shell);PATH 變數定義用來執行命令的路徑。cron 任務的輸出被郵寄給 MAILTO 變數定義的用戶名。如果 MAILTO 變數被定義為空白字元串(MAILTO=""),電子郵件就不會被寄出。HOME 變數可以用來設置在執行命令或腳本時使用的主目錄。
/etc/crontab 文件中的每一行都代表一項任務,它的格式是:
minute hour day month dayofweek command
minute — 分鍾,從 0 到 59 之間的任何整數
hour — 小時,從 0 到 23 之間的任何整數
day — 日期,從 1 到 31 之間的任何整數(如果指定了月份,必須是該月份的有效日期)
month — 月份,從 1 到 12 之間的任何整數(或使用月份的英文簡寫如 jan、feb 等等)
dayofweek — 星期,從 0 到 7 之間的任何整數,這里的 0 或 7 代表星期日(或使用星期的英文簡寫如 sun、mon 等等)
command — 要執行的命令(命令可以是 ls /proc >> /tmp/proc 之類的命令,也可以是執行你自行編寫的腳本的命令。)
在以上任何值中,星號(*)可以用來代表所有有效的值。譬如,月份值中的星號意味著在滿足其它制約條件後每月都執行該命令。
整數間的短線(-)指定一個整數范圍。譬如,1-4 意味著整數 1、2、3、4。
用逗號(,)隔開的一系列值指定一個列表。譬如,3, 4, 6, 8 標明這四個指定的整數。
正斜線(/)可以用來指定間隔頻率。在范圍後加上 / 意味著在范圍內可以跳過 integer。譬如,0-59/2 可以用來在分鍾欄位定義每兩分鍾。間隔頻率值還可以和星號一起使用。例如,*/3 的值可以用在月份欄位中表示每三個月運行一次任務。
開頭為井號(#)的行是注釋,不會被處理。
如你在 /etc/crontab 文件中所見,它使用 run-parts 腳本來執行 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 目錄中的腳本,這些腳本被相應地每小時、每日、每周、或每月執行。這些目錄中的文件應該是 shell 腳本。
如果某 cron 任務需要根據調度來執行,而不是每小時、每日、每周、或每月地執行,它可以被添加到 /etc/cron.d 目錄中。該目錄中的所有文件使用和 /etc/crontab 中一樣的語法。
# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo 30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
# run custom script the first day of every month at 4:10AM 10 4 1 * * /root/scripts/backup.sh
同時在寫crontab執行的.sh腳本時要注意添加許可權和路徑。例如:
crontab語句:30 14 * * * /opt/apps/ems_query/bin/start.sh
相應的腳本:
source /home/tvgame/.bash_profile
cd /opt/apps/ems_query/bin/
java -Xmx64M -jar ../lib/ems_query.jar &
❸ crontab 命令介紹怎麼用
任務調度的crond常駐命令
crond 是linux用來定期執行程序的命令。當安裝完成操作系統之後,默認便會啟動此任務調度命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。而linux任務調度的工作主要分為以下兩類:
1、系統執行的工作:系統周期性所要執行的工作,如備份系統數據、清理緩存
2、個人執行的工作:某個用戶定期要做的工作,例如每隔10分鍾檢查郵件伺服器是否有新信,這些工作可由每個用戶自行設置
Crontab是UNIX系統下的定時任務觸發器,其使用者的許可權記載在下列兩個文件中:
文件
含義
/etc/cron.deny
該文件中所列的用戶不允許使用Crontab命令
/etc/cron.allow
該文件中所列的用戶允許使用Crontab命令
/var/spool/cron/
是所有用戶的crontab文件
/var/spool/cron/crontabs
/var/spool/cron/crontabs
Crontab命令的格式為:crontab –l|-r|-e|-i [username],其參數含義如表一:
參數名稱
含義
示例
-l
顯示用戶的Crontab文件的內容
crontabl –l
-i
刪除用戶的Crontab文件前給提示
crontabl -ri
-r
從Crontab目錄中刪除用戶的Crontab文件
crontabl -r
-e
編輯用戶的Crontab文件
crontabl -e
用戶所建立的Crontab文件存於/var/spool/cron中,其文件名與用戶名一致。
它的格式共分為六段,前五段為時間設定段,第六段為所要執行的命令段,
格式如下:* * * * *
其時間段的含義如表二:
段
含義
取值范圍
第一段
代表分鍾
0—59
第二段
代表小時
0—23
第三段
代表日期
1—31
第四段
代表月份
1—12
第五段
代表星期幾,0代表星期日
0—6
例:如果用戶的Crontab文件的內容是:29 19 * * * echo its dinner time,則系統每天的19:29顯示『its dinner time』
示例(創建一個cron全過程,每分鍾都會在test.txt里輸入當前時間):
1. 以普通用戶登錄linux系統(我用的是CentOS4.1)
2. $crontab –e
說明:系統默認的編輯器是VIM,如果不是請加上以下shell:
$EDITOR=vi
$export EDITOR
3. 輸入」*/1 * * * * date >> $HOME/test.txt」,save and exit VIM
4. $su root
5. $cd /etc/init.d
6. ./crond restart
下面看看看幾個具體的例子:
● 0 */2 * * * /sbin/service httpd restart 意思是每兩個小時重啟一次apache
● 50 7 * * * /sbin/service sshd start 意思是每天7:50開啟ssh服務
● 50 22 * * * /sbin/service sshd stop 意思是每天22:50關閉ssh服務
● 0 0 1,15 * * fsck /home 每月1號和15號檢查/home 磁碟
● 1 * * * * /home/bruce/backup 每小時的第一分執行 /home/bruce/backup這個文件
● 00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} /; 每周一至周五3點鍾,在目錄/home中,查找文件名為*.xxx的文件,並刪除4天前的文件。
● 30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30執行一次ls命令
參數 :
crontab -e : 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe)
crontab -r : 刪除目前的時程表
crontab -l : 列出目前的時程表
crontab file [-u user]-用指定的文件替代目前的crontab。
時程表的格式如下 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分鍾,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行的程序。
當 f1 為 * 時表示每分鍾都要執行 program,f2 為 * 時表示每小時都要執行程序,其餘類推
當 f1 為 a-b 時表示從第 a 分鍾到第 b 分鍾這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推
當 f1 為 */n 時表示每 n 分鍾個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推
當 f1 為 a, b, c,... 時表示第 a, b, c,... 分鍾要執行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其餘類推
使用者也可以將所有的設定先存放在檔案 file 中,用 crontab file 的方式來設定時程表。
crontab執行java程序的問題:
一 crontab使用注意:
crontab -l查看該用戶的crontab配置,crontab -e編輯該用戶的crontab配置配置一般在末尾加上 2>&1表示錯誤輸出(2)和標准輸出(1)一樣輸出到同一個由前面>>指定的地方
如 15 14 * * * /sys_back/monitor.sh >>/sys_back/log/monitor.log 2>&1
表示每天14:15執行monitor.sh腳本,錯誤和標准輸出都寫入monitor.log文件
涉及到文件名時最好寫絕對路徑
二 問題及解決
shell腳本有echo語句,有java -jar執行java程序。直接執行腳本時,一切順利,但是放到crontab中執行時,echo語句正常,java程序卻沒有執行。
1 網上查找,覺得應該是環境變數的問題。說是要將java環境變數加入到shell腳本中,按照
這個方法做,發現問題依然存在。百思不得其解。
2 經轉換角度,看java程序是否有問題。在java語句中直接加入列印語句,發現其在crontab日誌中
居然可以顯示。終於確定是java程序的問題。java程序功能很簡單,就是一個語句java -Dosgi.console -Dosgi.configuration.area=./configuration -jar equinox.jar -console用來啟動osgi框架。
於是在shell腳本中不調用java程序,直接改為程序中的這一句,問題解決。
但是又引發新的問題:直接java -jar會源源不斷的輸出osgi>到日誌文件,導致日誌文件越來越大。
不可行。再想辦法解決。
3 感覺還是相對路徑的問題。嘗試在crontab調用的腳本中用相對路徑向一個文件輸出一句話,發現失敗。(單獨執行腳本沒問題)既然如此,是不是java程序中也不能用相對路徑呢。遂將./configuration及equinox.jar都用絕對路徑,再調試,終於成功,至此問題解決。但始終感覺在程序中用絕對路徑很不方便維護。
三 附加問題及解決
此腳本的作用就是判斷osgi程序是否在運行,如果不運行則啟動。
實現思路是ps -elf得到進程id及狀態,如果id不存在,則啟動,如果id存在但狀態不是運行中(solaris為O,AIX為A),則殺掉原進程重新啟動。
發現程序在運行幾天後會自動停掉,以為是java程序有問題,然而卻始終找不到問題在哪裡。在解決上面問題時,卻意外的發現可能不是java程序的問題。man ps時發現,solaris中,進程狀態除了O,還有S(sleeping) R(Runnable) Z(Zombie僵屍進程)T(stopped),只有後兩種狀態下進程才是有問題的,所以很可能是crontab執行腳本時,程序狀態非O就被殺掉,重啟時卻因為上面的問題沒成功。於是修改腳本,狀態是後兩種時才重啟。這個問題也解決了。
我也是網上轉的,望採納
❹ 為什麼crontab這幾個命令,沒有全部執行
crontab
與普通操作的終端的區別就是crontab
默認沒有設置
path
信息。而曾經已經為你設置好了,也就是說你用crontab與相對路徑的話有可能是不執行的。
你可以在頭部加上
path=$path:/bin
.....
❺ crontab可以直接執行命令嗎
crontab 與普通操作的終端的區別就是crontab 默認沒有設置 PATH 信息。而曾經已經為你設置好了,也就是說你用crontab與相對路徑的話有可能是不執行的。 你可以在頭部加上 PATH=$PATH:/bin .....
❻ 怎麼使用crontab計劃任務
一、系 統的Cron計劃文件存放在/etc/crontab路徑下。與用戶的crontab文件不同,root用戶可以直接對該文件進行修改,而不用使用 crontab -e命令。除此之外,系統crontab文件中任務的定義也有所不同,在前五個部分之後插入了一個「用戶」部分。以下是我的/etc/crontab文 件:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
二、使設置生效
設置完成後,重啟cron即可使設置的計劃任務定時執行了,重啟命令如下:
service cron restart
❼ Linux裡面crontab是什麼
首先,crontab是一個命令,常見於Unix和類Unix的操作系統之中,用於設置周期性被執行的指令。該命令從標准輸入設備讀取指令,並將其存放於「crontab」文件中,以供之後讀取和執行。與windows下的計劃任務類似,當安裝完成操作系統後,默認會安裝此服務工具,並且會自動啟動crond進程,crond進程每分鍾會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。其中:
1、cron是服務名稱;
2、crond是後台進程;
3、crontab是計劃任務表;
1、系統任務調度:系統周期性所要執行的工作,比如寫緩存數據到硬碟、日誌清理等。在/etc目錄下有一個crontab文件,這個就是系統任務調度的配置文件
2、用戶任務調度:用戶定期要執行的工作,比如用戶數據備份、定時郵件提醒等。用戶可以使用crontab來定製自己的計劃任務。所有用戶定義的crontab文件都被保存在/var/spool/cron目錄下,其文件名與用戶名一致。
用法:
1、crontab [-u user] file:-u用來指定某個用戶的crontab服務,一般是像root這種高許可權用戶使用。file是命令文件的名字,表示將file作為crontab的任務列表文件並載入crontab。如果在命令行中沒有指定這個文件,crontab命令將接受標准輸入(鍵盤)上鍵入的命令,並將它們載入crontab。
2、crontab [-u user] -e:編輯某個用戶的crontab文件內容。如果不指定用戶,則表示編輯當前用戶的crontab文件內容。
3、crontab [-u user] -l:顯示某個用戶的crontab文件內容。如果不指定用戶,則表示顯示當前用戶的crontab文件內容。
4、crontab [-u user] -[i]r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認刪除當前用戶的crontab文件。-i參數指定在刪除用戶的crontab文件時是否給確認提示。
效果如下
❽ crontab命令格式問題
是的,基本格式如下 :
*****command
分時日月周命令
第1列表示分鍾1~59 每分鍾用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令
❾ Linux系統:使用crontab命令編輯超級用戶的crontab表
在root用戶下打開終端,輸入以下命令就ok了
#crontab -e */30 * * * * ls -al /root
#crontab -e 35 5 */10 * * ps -aux
#crontab -e 25 1-4 * * * pwd
#crontab -e * 18 1 * * shutdown -r now