服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - linux 定时任务详解

linux 定时任务详解

2021-12-21 18:52sparkdev Linux

本篇文章主要介绍了linux 定时任务,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

习惯了使用 windows 的计划任务,使用 linux 中的 crontab 管理定时任务时很不适应。

所以把基本的用法总结如下。

创建一个简单的定时任务

每分钟输出一次当前的时间,输出到用户家目录下的 time.log 文件中。

?
1
2
$ crontab -e
* * * * * echo `date` >> /home/xxx/time.log

crontab 程序的路径为 /usr/bin/crontab。

每个用户的定时任务可以在 /var/spool/cron/crontabs/ 目录下查询到。

需要使用root权限才能进入这个目录。每个以用户名命名的文件中记录着该用户的定时任务。

注意,不要使用 vi 直接编辑这些文件。

cron 运行的每一项工作都会被纪录到 /var/log/cron 这个登录档中,但是 ubuntu 默认关闭了cron 的 log。

打开的方式为:打开 rsyslog 服务的配置文件

?
1
$ sudo vim /etc/rsyslog.d/50-default.conf

将下面一行中前面的注释符去掉

?
1
cron.*       /var/log/cron.log

重启 rsyslog

?
1
$ sudo service rsyslog restart

现在就可以看到 /var/log/cron 文件了,查看该文件是解决定时任务出错的重要途径。

控制用户运行定时任务

如果不想让某个用户运行定时任务,直接把他的账号写入到 /etc/cron.deny 文件中即可。注意,一行一个账号。

当然你也可以使用 /etc/cron.allow 文件来显式的指定可以运行定时任务的用户的账号,并且 /etc/cron.allow 比 /etc/cron.deny 的优先级要高。

但感觉有点乱,倒不如只使用其中的一个。

crontab 命令

-u :只有 root 才有权限执行这个任务,也就是帮其他使用者创建/移除 crontab 定时任务

-e :编辑 crontab 的内容

-l  :显示 crontab 的内容

-r :移除所有 crontab 的内容,若仅要移除某一项,请用 -e 编辑

时间格式

                      分钟        小时         日期         月份        周           命令

数字范围        0-59        0-23        1-31        1-12        0-7         echo "hello" >> abc.log

 特殊字符的含义

*(星号)        代表任何时刻都接受。

,(逗号)         代表分隔时段的意思。

-(减号)        代表一段时间范围内。

/n(斜线)      那个 n 代表数字,每隔 n 单位间隔。

case1: 每年的五月一日 10:5 执行一次

?
1
5 10 1 5 * command

case2: 每天的三点,六点各执行一次

?
1
0 3,6 * * * command #注意这里使用了逗号

case3: 每天的8:20, 9:20,10:20,11:20各执行一次

?
1
20 8-11 * * * command #注意这里使用了减号

case4: 每五分钟执行一次

?
1
*/5 * * * * command #注意这里使用了/n

case5: 每周一十点执行一次

?
1
* 10 * * 1 command

配置系统级别的定时任务

crontab -e 是用来设置用户级别的定时任务的。如果要设置系统级别的定时任务该怎么办呢?

答案是直接使用 root 权限编辑系统级别定时任务的配置文件: /etc/crontab。

比如直接用 vim 打开编辑:

linux 定时任务详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/sparkdev/p/5862038.html

延伸 · 阅读

精彩推荐
  • Linux理解 Linux/Unix 登录脚本的技巧

    理解 Linux/Unix 登录脚本的技巧

    有一些常见的情况,例如从Debian的包管理程序到Iaas的管理中,很多任务需要设置环境变量才能正常运行。 有时,程序通常只需要在 登陆时运行一次,例如...

    未知1042023-05-12
  • Linuxlinux设置tomcat自启动的方法

    linux设置tomcat自启动的方法

    这篇文章主要介绍了linux设置tomcat自启动的方法,需要的朋友可以参考下...

    Linux教程网8512021-10-10
  • Linux将 Linux 终端与 Nautilus 文件管理器结合起来

    将 Linux 终端与 Nautilus 文件管理器结合起来

    Nautilus 是 GNOME 桌面环境中的图形化文件浏览器。你可以使用它来访问和管理系统中的文件和文件夹。 尽管并非所有人都喜欢使用终端来管理文件和目录,...

    未知812023-08-08
  • Linuxlinux驱动程序开发详细介绍

    linux驱动程序开发详细介绍

    前提,一般来说内核代码的错误可能会引起一个用户进程的死亡,或者整个系统的瘫痪,更严重的后果,可能导致磁盘损伤~因此建议最好有一台实验机进行...

    Linux教程网5392019-12-17
  • Linuxssh 登录很慢该如何解决

    ssh 登录很慢该如何解决

    这篇文章主要介绍了ssh 登录很慢该如何解决的相关资料,这里提供了两种方法,DNS反向解析及关闭ssh的gssapi认证的解决办法,需要的朋友可以参考下...

    linuxeye9922021-12-16
  • Linuxlinux top命令详解

    linux top命令详解

    这篇文章主要介绍了linux top命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sparkdev5622022-03-01
  • Linux在Linux系统中创建新的亚马逊AWS访问密钥的方法

    在Linux系统中创建新的亚马逊AWS访问密钥的方法

    如何在Linux系统中创建新的亚马逊AWS访问密钥?我在配置一个需要访问我的亚马逊AWS帐号的应用时被要求提供AWS访问密钥ID和秘密访问密钥,我怎样创建一个...

    Linux教程网6182019-10-30
  • LinuxLinux系统下无法卸载挂载的目录怎么办?

    Linux系统下无法卸载挂载的目录怎么办?

    我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目...

    今日头条10302020-12-30