❶ 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