linux下vi编辑crontab文件,Linux下crontab定时任务

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

因为需要在Linux下定时对数据库做备份,所以对Linux的crontab服务做了一些简单的了解。

以下内容是在实际操作过程中遇到的一些问题及相关技术翻案,包括crontab简单了解、怎么用vi打开编辑crontab、crontab时间表达式、定时任务输出重定向等问题。

Linux下的定时任务设置

crontab简介

Linux下的任务调度分为两类,系统任务调度和用户任务调度。

系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。

/etc/crontab文件包括下面几行:1

2

3

4

5

6

7

8

9

10

11

12

13

14

15# /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

MAILTO=""

HOME=/

# 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 )

前四行是用来配置crond任务运行的环境变量,第一行SHELL变量指定了系统要使用哪个shell,这里是bash,第二行PATH变量指定了系统执行命令的路径,第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户,第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。

用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

使用者权限文件:

/var/spool/cron:所有用户定义的crontab 文件都被保存在目录中,其文件名与用户名一致。

/etc/cron.deny:该文件中所列用户不允许使用crontab命令。

/etc/cron.allow:该文件中所列用户允许使用crontab命令,优先于/etc/cron.deny

设置crontab用vi打开编辑:

编辑.profile文件,增加EDITOR=vi;export EDITOR 或 直接在命令行输入 EDITOR=vi;export EDITOR

判断方法:

$ which $EDITOR

$ 如果该行显示为空,那么你就需要执行下面的两个语句了。

$ EDITOR=vi

$ export EDITOR

crontab的时间表达式

基本格式 :1

2*  *  *  *  *  command

分 时 日 月 周 命令

1751101486-55155eadab949_articlex

几个例子:1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

171、每分钟执行一次

* * * * *

2、每隔一小时执行一次

00 * * * * or * */1 * * * (/表示频率)

3、每小时的15和30分各执行一次

15,45 * * * * (,表示并列)

4、在每天上午 8- 11时中间每小时 15 ,45分各执行一次

15,45 8-11 * * * command (-表示范围)

5、每个星期一的上午8点到11点的第3和第15分钟执行

3,15 8-11 * * 1 command

6、每隔两天的上午8点到11点的第3和第15分钟执行

3,15 8-11 */2 * * command

crontab命令介绍

查看crontab服务状态:

service cron status

手动启动crontab服务:

service cron start

手动停止crontab服务:

service cron stop

使用方式 :1

2

3

4

5

6

7

8

9

10

11crontab [-u user] file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。

crontab -u [user]:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般由root用户来运行。

crontab -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

crontab -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

crontab -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

crontab -i:在删除用户的crontab文件时给确认提示。

常用crontab命令:

查看当前用户的定时任务:

[[email protected]:~]# crontab -uroot -l

追加crontab定时任务:

注:定时任务结尾加 >/dev/null 2>&1(在调试好脚本程序后,应尽量把DEBUG及命令输出的内容信息屏蔽掉,如果确实需要输出日志,可定向到日志文件里,避免产生系统垃圾。)

如:1

2

3#backup www to /backup

00 00 * * * /bin/sh /server/scripts/www_bak.sh >/dev/null 2>&1

有关/dev/null的说明:

/dev/null为特殊的字符设备文件,表示黑洞设备或空设备。

>/dev/null 2>&1的作用:

如果定时任务规范结尾不加 >/dev/null 2>&1,很容易导致硬盘inode空间被占满,从而系统服务不正常(var/spool/clientmqueue邮件临时队列目录,垃圾文件存放于此,如果是centos 6.4系统,默认不装sendmail服务,所以不会有这个目录。)

有关重定向的说明:1

2

3

4

5

6

7

8

9

10

11

12>或1> 输出重定向:把前面输出的东西输入到后边的文件中,会删除文件原有内容。

>>或1>>追加重定向:把前面输出的东西追加到后边的文件中,不会删除文件原有内容。

<

2> 错误重定向:把错误信息输入到后边的文件中,会删除文件原有内容。

2>> 错误追加重定向:把错误信息追加到后边的文件中,不会删除文件原有内容。

标准输入(stdin):代码为0,使用

标准输出(stdout):代码为1,使用>或>>。正常的输出。

标准错误输出(sederr):代码为2,使用2>或2>>。

特殊:

2>&1就是把标准错误重定向到标准输出(>&)。

>/dev/null 2>&1 等价于 1>/dev/null 2>/dev/null

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值