当前位置:首页 > 开发 > 操作系统 > 正文

linux环境中设定开机自启动与定时任务

发表于: 2011-05-01   作者:bingyingao   来源:转载   浏览次数:
摘要: 开机自启动任务的设定 通常情况是编辑rc.local,将要启动的内容写在里面即可 Eg: 开机自动开启3306端口 #vi  /etc/rc.local iptables -I RH-Firewall-1-INPUT -p tcp --dport 3690 -j ACCEPT 当然,有的服务,想要设定开机自启动还要做一些其它的配置,譬如,设定ora
开机自启动任务的设定
通常情况是编辑rc.local,将要启动的内容写在里面即可

Eg:

开机自动开启3306端口

#vi  /etc/rc.local

iptables -I RH-Firewall-1-INPUT -p tcp --dport 3690 -j ACCEPT



当然,有的服务,想要设定开机自启动还要做一些其它的配置,譬如,设定oracle开机自启动。

crontab有兩种建立定时任务的方式:
一种是针对某个使用者,可以由 crontab -e 的指令来下达工作排程;

另一种是针对系统管理员,你可以直接修改 /etc/crontab 这个文件,来直接定时执行。

修改后须执行

#service crond restart 重启一下crond服务



时程表的格式如下:

  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...个小时要执行,其余类推

  例子:

  每月每天每小时的第 1 分钟执行一次 /home/createfile.sh

  01 * * * * sh /home/createfile.sh



  在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup:

  0 6-12/3 * 12 * /usr/bin/backup



  周一到周五每天下午 5:00 寄一封信给 admin@domain.name:

  0 17 * * 1-5 mail -s \"hi\" admin@domain.name < /tmp/maildata



  每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo \"haha\"

  20 0-23/2 * * * echo \"haha\"  



注意:

要使用 cron 服务,你必须安装了 vixie-cron RPM 软件包,而且必须在运行 crond 服务。要判定该软件包是否已安装,使用 rpm -q vixie-cron 命令。要判定该服务是否在运行,使用 /sbin/service crond status 命令。










其它相关参考资料:

37.1.1. 配置 cron 任务
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> 意味着在范围内可以跳过 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



例 37-1. crontab 的例子


根用户以外的用户可以使用 crontab 工具来配置 cron 任务。所有用户定义的 crontab 都被保存在 /var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令,使用由 VISUAL 或 EDITOR 环境变量指定的编辑器来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。



cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。



37.1.2. 控制对 cron 的使用
/etc/cron.allow 和 /etc/cron.deny 文件被用来限制对 cron 的使用。这两个使用控制文件的格式都是每行一个用户。两个文件都不允许空格。如果使用控制文件被修改了,cron 守护进程(crond)不必被重启。使用控制文件在每次用户添加或删除一项 cron 任务时都会被读取。



无论使用控制文件中的规定如何,根用户都总是可以使用 cron。



如果 cron.allow 文件存在,只有其中列出的用户才被允许使用 cron,并且 cron.deny 文件会被忽略。



如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用户都被禁止使用 cron。



37.1.3. 启动和停止服务
要启动 cron 服务,使用 /sbin/service crond start 命令。要停止该服务,使用 /sbin/service crond stop 命令。推荐你在引导时启动该服务。

linux环境中设定开机自启动与定时任务

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
一、最近做项目:一个项目放在co_jboss用户下,一个项目放在co_front用户下 linux服务器下自己的项目
有一个脚本想在ubuntu 虚拟机开机时,自动运行。 创建脚本文件 在“/opt/lampp/”下新建一个脚本文
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。Cron 是Linux的内置服务。
今天在执行mysql定时任务语句时候问了很多大拿,都建议我不要随便在生产环境下写定时任务这样的语句
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在
在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号