ubuntu下定时任务的执行

概述

linux系统由 cron (crond) 这个系统服务来控制例行性计划任务。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。

另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。

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

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

使用者权限文件:

文件:

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

文件:

/etc/cron.allow 说明:该文件中所列用户允许使用crontab命令

文件:

/var/spool/cron/ 说明:所有用户crontab文件存放的目录,以用户名命名

crontab文件的含义:

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

minute   hour   day   month   week   command

在以上各个字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

ubuntu下crontab命令的使用

  1.首先编辑crontab文件。

crontab -e #打开你的用户所属的crontab文件。第一次用这个命令,会让你选择文本编辑器

以后可以通过命令更改编辑器

select-editor

打开后的crontab文件类似这种样子:

  1. # m h  dom mon dow   command
  2. */2 * * * * date >> ~/time.log

第二行是我为了测试写的一个定期任务,它的意思是,每隔两分钟就执行 date >> ~/time.log 命令(记录当前时间到time.log文件)。你可以把它加入你的crontab中,然后保存退出。

保存了crontab之后,我们还需要重启cron来应用这个计划任务。使用以下命令:

  1. sudo service cron restart

  

时间: 2024-08-01 10:45:44

ubuntu下定时任务的执行的相关文章

linux下定时任务不能执行

1)问题描述 自己写的脚本在命令行执行没有问题,当写入到定时任务就不能执行. 定时任务的日志也显示在这个时间点执行了本脚本,但是就是没有生成备份文件 2)问题解决步骤 上网查看资料,发现脚本没有添加执行权限,于是执行chmod +x /server/scripts/backup.sh ,发现还是不能 继续查资料,发现可能是环境变量问题 在脚本开始时,将PATH环境变量导入,再次执行成功. [[email protected] ~]# head -3 /server/scripts/backup.

ubuntu下无sudo执行Docker

添加一个新的docker用户组 sudo groupadd docker 添加当前用户到docker用户组里,注意这里的yongboy为ubuntu server登录用户名 sudo gpasswd -a yongboy docker 重启Docker后台监护进程 sudo service docker restart 重启之后,尝试一下,是否生效 docker version 若还未生效,则系统重启,则生效 sudo reboot

ubuntu 下非交互式执行远程shell命令

apt-get install sshpass sshpass -p **your_password** ssh -o StrictHostKeyChecking=no "[email protected]$ip" "du -sm /home/bone/ext_disk/splunk/var/lib" 参考: https://www.cyberciti.biz/tips/linux-running-commands-on-a-remote-host.html htt

Ubuntu下用crontab 部署定时任务

用php做了一个网站,其中一个统计工能,需要每周定时用行.想看看有什么方法,之前看别人的东西,一般有2中方式,一个是php自带的定时任务,一个是用系统 带的,linux下的crontab和windows下的定时任务. 之前用了php自带的定时任务工能,发现实现起来很简单,中间也没出现很多问题,同时做的时候对  ob_flush()  和 flush() 等函数不是很熟,后来又看了相关的一些文章, 对其中的东西有了深入的了解.但是后来发现php定时任务开启后,貌似不能停止,不需要重启服务器才行.不

Ubuntu 下安装opencv 编译后执行找不到库

在ubuntu下编译opencv程序后,执行报下面到错误:error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such file or directory解决方法:找到libopencv_开头到库的目录,在/usr/local/lib下面,在/etc/ld.so.conf.d/下面新建一个opencv.conf,里面写入/usr/local/lib,最后执行

Ubuntu下sh *.sh使用==操作符执行报错

----<鸟哥的Linux私房菜--基础篇>学习笔记 ubuntu默认的sh是连接到dash,而我们写shell脚本时使用的时bash.bash和dash在一些方面是不兼容的.因此执行同一个脚本,两者结果不一样,可能用./*sh可以执行,而sh *.sh报错. 为了正确实行使用./*.h 或者  bash *.sh  或者把==换成=(不兼容部分) 也可以直接让系统不使用dash....Ubuntu之所以使用dash是因为其体积小,兼容性高,但是悲催的时,一些bash可执行的脚步在dash下不

Ubuntu下在Eclipse IDE for C/C++ Developers中怎样执行C语言的GTK程序?(已解决)

(已解决.详见Ubuntu 12.04下在Eclipse IDE for C/C++ Developers中执行C语言的GTK程序) 按"Ubuntu下GTK的安装.编译和測试"(http://www.cnblogs.com/niocai/archive/2011/07/15/2107472.html)所说步骤,最终安装成功了GTK,非常开心,以为近一个月的困扰要攻克了.但在Eclipse IDE for C/C++ Developes中一測试.出现找不到gtk/gtk.h头文件的错误

ubuntu下通过网络文件系统NFS将执行文件下载到开发板运行

功夫不负有心人,总算把NFS网络做好了 首先,电脑要和开发板都接到路由器上,形成一个局域网(这个我居然给忽略了...) PC端:Ubuntu 12.04 开发板:linux 2.6.32.2   点击查看ubuntu下给开发板烧写linux 一丶PC端 1.安装NFS # sudo apt-get install nfs-kernel-server portmap 2.配置exports共享路径 # mkdir /NFSroot             //创建NFSroot目录 #chown

解决一个特定的负载均衡下定时任务执行多次的问题

项目每天晚上有个定时任务,把redis缓存数据重新连接数据库刷新一遍,耗时大约40分钟.但问题是项目是nginx负载均衡,这个定时任务会执行多次.经过一些思考之后,用以下办法解决: redis里加一个key,名字是指定名称+日期.定时任务启动后,会去redis里查看是否存在这个key,如果存在就不执行定时任务,不存在就创建这个key并执行定时任务.这样无论这个任务被调取了多少次,它只会执行最开始的一次. 原文地址:https://www.cnblogs.com/rock-turf/p/82516