广告
返回顶部
首页 > 资讯 > 操作系统 >如何使用linux的crontab命令执行其它命令
  • 118
分享到

如何使用linux的crontab命令执行其它命令

2024-04-02 19:04:59 118人浏览 泡泡鱼
摘要

这篇“如何使用linux的crontab命令执行其它命令”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起

这篇“如何使用linux的crontab命令执行其它命令”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用linux的crontab命令执行其它命令”文章吧。

1.1 /etc/crontab 文件

在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。

如:

复制代码 代码如下:

[root@dave ~]# cat /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

1.2 /etc/cron.deny 和 /etc/cron.allow 文件

复制代码 代码如下:

/etc/cron.deny 表示不能使用crontab 命令的用户

/etc/cron.allow 表示能使用crontab的用户。

如果两个文件同时存在,那么/etc/cron.allow 优先。如果两个文件都不存在,那么只有超级用户可以安排作业。

每个用户都会生成一个自己的crontab 文件。这些文件在/var/spool/cron目录下,如:

复制代码 代码如下:

[root@dave ~]# cd /var/spool/cron

[root@dave cron]# ls

oracle  root

我们直接查看这个文件,里面的内容和对应用户显示的crontab -l 一致。

复制代码 代码如下:

[root@dave cron]# cat oracle

00 6 * * * /u02/scripts/del_st_arcHive.sh >/u02/scripts/del_st_arch.log 2>&1

[root@dave cron]# cat root

0 12 * * * /root/bin/sync-clock.sh

[root@dave cron]#

二.  crontab 使用说明

2.1  crontab语法

复制代码 代码如下:

usage:  crontab [-u user] file

crontab [-u user] [ -e | -l | -r ]

 -e      (edit user's crontab)

 -l      (list user's crontab)

 -r      (delete user's crontab)

 -i      (prompt before deleting user's crontab)

 -s      (selinux context)

其中,file是命令文件的名字。如果在命令行中指定了这个文件,那么执行crontab命令,则将这个文件拷贝到crontabs目录下;如果在命令行中没有制定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将他们也存放在crontab目录下。

帮助:

复制代码 代码如下:

[root@dave ~]# man crontab

crontab(1)  crontab(1)

name

crontab - maintain crontab files for individual users (isc cron v4.1)

synopsis

crontab [-u user] file

crontab [-u user] [-l | -r | -e] [-i] [-s]

options

-u     it  specifies  the name of the user whose crontab is to be tweaked.  if this  option is not given, crontab examines "your" crontab, i.e., the crontab  of the  person  executing the command.  note that su(8) can confuse crontab and that if you are running inside of su(8) you should always use the -u  option for  safety¡&Macr;s sake.  the first fORM of this command is used to install a new crontab from some named file or standard input if the pseudo-filename "-" is given.

-l     the current crontab will be displayed on standard output.

-r     the current crontab will be be removed.

-e     this  option  is used to edit the current crontab using the editor specified by the visual or editor environment variables.  after you exit from the edi-tor, the modified crontab will be installed automatically.

-i     this  option  modifies the -r option to prompt the user for a ¡¯y/y¡¯ response before actually removing the crontab.

-s     it will append the current selinux security context string as  an  mls_level setting  to  the  crontab file before editing / replacement occurs - see the documentation of mls_level in crontab(5).

复制代码 代码如下:

see also

crontab(5), cron(8)

files

/etc/cron.allow

/etc/cron.deny

standards

the crontab command conforms to ieee std1003.2-1992 (¡®¡®posix¡¯¡¯).  this new  command syntax  differs  from  previous versions of vixie cron, as well as from the classic

svr3 syntax.

diagnostics

a fairly informative usage message appears if you run it with a bad command line.

author

paul vixie <vixie@isc.org>

4th berkeley distribution16 januar 2007 crontab(1)

2.2  crontab 格式说明

我们可以用crontab -e 添加要执行的命令。 命令执行的结果,无论是标准输出还是错误输出,都将以邮件形式发给用户。

添加的命令必须以如下格式:

* * * * * /command path
前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,即命令字段,其中包括了crontab调度执行的命令。 各个字段之间用spaces和tabs分割。

前5个字段分别表示:

分钟:0-59

小时:1-23

日期:1-31

月份:1-12

星期:0-6(0表示周日)

还可以用一些特殊符号:

*: 表示任何时刻

,: 表示分割

-:表示一个段,如第二端里: 1-5,就表示1到5点

/n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

一些示例:

复制代码 代码如下:

00 8,12,16 * * * /data/app/scripts/monitor/df.sh

30 2 * * * /data/app/scripts/hotbackup/hot_database_backup.sh

10 8,12,16 * * * /data/app/scripts/monitor/check_ind_unusable.sh

10 8,12,16 * * * /data/app/scripts/monitor/check_maxfilesize.sh

10 8,12,16 * * * /data/app/scripts/monitor/check_objectsize.sh

复制代码 代码如下:

43 21 * * * 21:43 执行

15 05 * * *    05:15 执行

0 17 * * * 17:00 执行

2.3  & 后台执行命令

当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。可以使用&命令把作业放到后台执行。

如:

复制代码 代码如下:

30 2 * * * /data/app/scripts/hotbackup/hot_database_backup.sh &

在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。

不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:

如:

复制代码 代码如下:

command >out.file 2>&1 &

在这个例子中,2>&1表示所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。

2.4  2>&1 含义

先看一个例子:

复制代码 代码如下:

0 2 * * * /u01/test.sh >/dev/null 2>&1 &

这句话的意思就是在后台执行这条命令,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null 文件,也就是清空。

在这里有有几个数字的意思:

0表示键盘输入

1表示标准输出

2表示错误输出.

我们也可以这样写:

复制代码 代码如下:

0 2 * * * /u01/test.sh  >/u01/out.file &  --这里没写,默认是1

0 2 * * * /u01/test.sh  1>/u01/out.file &

0 2 * * * /u01/test.sh  2>/u01/out.file &

0 2 * * * /u01/test.sh  2>/u01/out.file  2>&1 &

将tesh.sh 命令输出重定向到out.file, 即输出内容不打印到屏幕上,而是输出到out.file文件中。

2>&1 是将错误输出重定向到标准输出。 然后将标准输入重定向到文件out.file。

&1 表示的是文件描述1,表示标准输出,如果这里少了&就成了数字1,就表示重定向到文件1。

& :后台执行

测试

复制代码 代码如下:

ls 2>1 : 不会报没有2文件的错误,但会输出一个空的文件1;

ls xxx 2>1: 没有xxx这个文件的错误输出到了1中;

ls xxx 2>&1: 不会生成1这个文件了,不过错误跑到标准输出了;

ls xxx >out.txt 2>&1 == ls xxx 1>out.txt 2>&1;  因为重定向符号>默认是1,这句就把错误输出和标准输出都传到out.txt 文件中。

2.5  2>&1写在后面的原因

格式:command > file 2>&1   == command  1> file 2>&1

首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。

如果改成: command 2>&1 >file

2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。

以上就是关于“如何使用linux的crontab命令执行其它命令”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网操作系统频道。

--结束END--

本文标题: 如何使用linux的crontab命令执行其它命令

本文链接: https://www.lsjlt.com/news/95783.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用linux的crontab命令执行其它命令
    这篇“如何使用linux的crontab命令执行其它命令”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起...
    99+
    2022-10-19
  • 如何使用Linux中的crontab命令
    小编给大家分享一下如何使用Linux中的crontab命令,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux常用命令crontab 被用来提交和管理用户的需...
    99+
    2023-06-28
  • crontab命令如何使用
    本文小编为大家详细介绍“crontab命令如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“crontab命令如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。crontab命令的功能是在一定的时间间隔...
    99+
    2023-06-27
  • Linux  crontab 命令的使用
    1.命令简介 contab(cron table) 命令被用管理用户的需要周期性执行的任务,与 Windows 下的计划任务类似,当安装完操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程,crond...
    99+
    2022-06-03
    Linux crontab 命令 Linux crontab
  • Linux下的crontab定时执行任务命令详解
    在linux中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是...
    99+
    2022-06-04
    crontab定时执行任务 定时任务crontab linux crontab
  • 怎么在Linux中使用crontab命令定时执行任务
    怎么在Linux中使用crontab命令定时执行任务?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。crontabcron是一个linux下 的定时执行工具,可以在无需人工干...
    99+
    2023-06-09
  • 怎么使用pv命令监控Linux命令的执行进度
    小编给大家分享一下怎么使用pv命令监控Linux命令的执行进度,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PV 命令PV 由Andrew Wood 开发,是 P...
    99+
    2023-06-16
  • linux下如何执行shell命令
    这篇文章将为大家详细讲解有关linux下如何执行shell命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。linux下执行shell命令有两种方法 在当前shell中执行shell命令在当前s...
    99+
    2023-06-09
  • Linux&nbsp;&nbsp;crontab 命令的使用
    1.命令简介 contab(cron table) 命令被用管理用户的需要周期性执行的任务,与 Windows 下的计划任务类似,当安装完操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程,crond 进...
    99+
    2022-06-04
    Linux crontab 命令 Linux crontab
  • 如何在Ubuntu中使用crontab命令
    这篇文章将为大家详细讲解有关如何在Ubuntu中使用crontab命令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先就要编辑crontab文件。crontab是一个文本文件,用来存放你要...
    99+
    2023-06-07
  • 怎么使用golang执行Linux shell命令
    这篇文章主要讲解了“怎么使用golang执行Linux shell命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用golang执行Linux shell命令”吧...
    99+
    2023-07-02
  • Linux命令之lz4命令如何使用
    本篇内容主要讲解“Linux命令之lz4命令如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux命令之lz4命令如何使用”吧!一、lz4命令简介LZ4是一种压缩格式,特点是压缩/解压...
    99+
    2023-07-05
  • 如何在linux中定期执行命令
    如何在linux中定期执行命令?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.cron,crontab以及anacron的关系cron是大多数linux发行版都自带的守护...
    99+
    2023-06-09
  • linux如何停止正在执行的命令
    在Linux中,可以使用以下方法停止正在执行的命令:1. 使用Ctrl+C组合键:这是最常用的方法。在终端中按下Ctrl+C组合键,...
    99+
    2023-09-07
    linux
  • 如何使用CPU加速Linux命令执行速度
    这篇文章主要介绍“如何使用CPU加速Linux命令执行速度”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用CPU加速Linux命令执行速度”文章能帮助大家解决问题。在处理大数据的时候我们总会想...
    99+
    2023-06-27
  • linux命令行下如何使用linux打开浏览器命令
    这篇文章主要讲解了“linux命令行下如何使用linux打开浏览器命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux命令行下如何使用linux打开浏览器命令”吧!linux命令行下...
    99+
    2023-06-17
  • Linux环境使用crontab命令设置定时周期性执行任务【含php执行代码】
    本文实例讲述了linux环境使用crontab命令设置定时周期性执行任务。分享给大家供大家参考,具体如下: 从linux帮助中查看crontab命令有以下参数: -u username:指定用户操作定时器 -e:编辑...
    99+
    2022-06-04
    Linux crontab 设置 定时 周期性 执行任务
  • Linux的chattr命令与lsattr命令如何使用
    本篇内容主要讲解“Linux的chattr命令与lsattr命令如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux的chattr命令与lsattr命令如何使用”吧!chattr &...
    99+
    2023-07-06
  • Linux crontab定时执行Shell脚本需要执行特定的命令时解决思路
    由于一些不可抗拒的原因,项目部署后需要定时检测项目是否正常运行,否则将执行重启命令。 在具体实施过程中发现,定时器执行无误,但是重启命令无法正常启动。多方查找发现Shell脚本中的ysLsXjava命令需要引入环境变量方...
    99+
    2022-06-04
    crontab定时执行shell脚本的小坑 linux crontab定时执行shell脚本需要执行特定的命令时解决思路
  • 如何在shell中使用expect命令进行远程执行命令脚本
    如何在shell中使用expect命令进行远程执行命令脚本?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。expect是用来实现自动交互功能的工具之一,使用expect-send...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作