linux结束所有任务命令行,Linux基础命令(15)定时任务

释放双眼,带上耳机,听听看~!

crontad

Linux定时任务Crontab命令详解

linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另 外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。

Linux crontab是用来定期执行程序的命令。

当安装完成操作系统之后,默认便会启动此任务调度命令。

crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。

而 linux 任务调度的工作主要分为以下两类:

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

2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

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

984e43e80d285f06b542f25a20250d8c.png前三行是用来配置crond任务运行的环境变量,第一行SHELL变量指定了系统要使用哪个shell,这里是bash,第二行PATH变量指定了系统执行 命令的路径,第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务 执行信息给用户,其他将在后续讲到。

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

minute hour day month week command

minute: 表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

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

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

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

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

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

crond服务

安装crontab:

yum install crontabs

服务操作说明:

service crond start //启动服务

service crond stop //关闭服务

service crond restart //重启服务

service crond reload //重新载入配置

service crond status //查看服务状态

systemctl enable crond.service//设为开机自启

crontab命令详解

1.命令格式:

crontab [-u user] file

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

2.命令功能:

通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。

3.命令参数:

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

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

-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件(可用于增加定时任务)。

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

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

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

实例

1.先用crontab -e编辑crond定时任务,增加“* * * * * ls>/root/test/11.txt”指的是每分钟执行一次ls命令,并将输出写入/root/test/11.txt,然后保存退出,用service crond restart重启crond服务让任务即时生效,等一会儿看见多出11.txt文件,cat文件可以看出ls的内容。

d829217f1c1fdf7820f99cea45a6371d.png

4b43e54b8244001ca880d343904f506e.png

41ca071282a8c7653dec5d99a37d0b74.png

2.每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分….执行 echo “haha”

20 0-23/2 * * * echo “haha”

3.下面再看看几个具体的例子:

0 */2 * * * /sbin/service httpd restart 意思是每两个小时重启一次apache

50 7 * * * /sbin/service sshd start 意思是每天7:50开启ssh服务

50 22 * * * /sbin/service sshd stop 意思是每天22:50关闭ssh服务

1 * * * * /home/bruce/backup 每小时的第一分执行 /home/bruce/backup这个文件

00 03 * * 1-5 find /home “*.xxx” -mtime +4 -exec rm {} \; 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。

30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30执行一次ls命令

脚本无法执行问题

如果我们使用 crontab 来定时执行脚本,无法执行,但是如果直接通过命令(如:./test.sh)又可以正常执行,这主要是因为无法读取环境变量的原因。

解决方法:

1、所有命令需要写成绝对路径形式,如: /usr/local/bin/docker。

2、在 shell 脚本开头使用以下代码:

#!/bin/sh

. /etc/profile

. ~/.bash_profile

3、在 /etc/crontab 中添加环境变量,在可执行命令之前添加命令 . /etc/profile;/bin/sh,使得好几遍了生效

例如:20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh

at

前言:

at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行作业。atd守护进程会检查系统上的一个特殊目录来获取at命令的提交的作业,默认情况下,atd守护进程每60秒检查一次目录,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。

注意:at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了。

at命令格式

at [选项] [时间]

Ctrl + D  结束at命令的输入

在使用at命令的时候,一定要保证atd进程的启动。

[root@vms002 /]# ps -ef|grep -v grep|grep atd

rpcuser    1550      1  0 6月10 ?       00:00:00 /usr/sbin/rpc.statd –no-notify

root       1552      1  0 6月10 ?       00:00:00 /usr/sbin/atd -f

at命令参数

选项含义

-m当指定的任务被完成后,将给用户发送邮件,即使没有标准输出

-Iatq的别名

-datrm的别名

-v显示任务将被执行的时间

-c打印任务的内容到标准输出

-V显示版本信息

-q 使用指定的队列

-f 从指定文件读入任务而不是从标准输入读入

-t 以时间参数的形式提交要运行的任务

时间定义

at允许使用一套相当复杂的指定时间的方法:

● 能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00

● 能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。

● 能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 例如:12pm

● 能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2009-03-1

● 能够使用相对计时法。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。 例如:now + 5 minutes 04pm + 3 days

● 能够直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

相关命令

1.at:在特定的时间执行一次性的任务;

2.atq:列出用户的计划任务,如果是超级用户将列出所有用户的任务,结果的输出格式为:作业号、日期、小时、队列和用户名;

3.atrm:根据job number删除at任务;

4.batch:在系统负荷允许的情况下执行at任务,就是在系统空闲的情况下才执行at任务。

创建at任务

创建at任务方式有两种,从文件输入和从控制台输入。以下分别用两种方式创建1分钟后将当前时间写入 home/result 文件的命令

1、从文件输入

02db7eef1fd46b582d789b763c8ce9b3.png

2、从命令行输入

5fcdb4f857759f04d4b40c122689b903.png注意此处的是ctrl+d 按键结束

atq 和 atrm命令

atq查看at定时队列命令,atrm删除某个定时任务命令.

20b29c0a8146383daff5dd0b26586819.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何修复无效的目标版本:Maven Build中的1.7、1.8、1.9或1.10错误

如果您正在使用Maven构建Java项目,可能是在Eclipse中,或者是通过运行mvn install在命令提示符下构建的,并且构建失败并显示诸如“无效的目标发行版:1.7”或“无效的目标发行版:1.8”之类的错误,那么您来了到…

Linux查看时间段文件,Linux查看特定时间段内修改过的文件

一.Linux系统日志的一些信息,日志配置文件syslog.conf系统日志一般都存在/var/log下常用的系统日志如下:核心启动日志:/var/log/dmesg系统报错日志:/var/log/messages邮件系统日志:/var/log/maillogFTP系统日志:/var/log/xferlog安全信息和系统登录与网络连接的信息…

使用ClickHouse UDF与OpenAI模型集成

本文字数:14683;估计阅读时间:37 分钟 作者:Dale McDiarmid 审校:庄晓东(魏庄) 本文在公众号【ClickHouseInc】首发 Meetup活动 ClickHouse Shenzhen User Group第1届 Meetup 火热报名中&#x…

使用Spring Boot和Vue.js构建一个简单的CRUD应用

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 在本教程中,您将使用Vue.js作为客户端并将Spring Boot作为资源服务器来构…

linux安装 icc编译器,安装 Intel Compiler (ifort icc icpc)

在下载目录下解压heqinheqin-dell:~/Downloads$ tar zxvf parallel_studio_xe_2017_update7.tgz进入解压后的文件夹heqinheqin-dell:~/Downloads$ cd parallel_studio_xe_2017_update7/为了记录过程而不用截图,我选择用命令行安装,当然你也可以用install…

linux 安装mongodb 64,在CentOS 6.x 64bit上安装MongoDB 3.2社区版

基本安装步骤参考: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/1) 创建repo源文件:sudo vim /etc/yum.repos.d/mongodb-org-3.2.repo内容如下:[mongodb-org-3.2]nameMongoDB Repositorybaseurlhttps://repo.mongodb.org/yum/redhat/$releasever/mon…

[免费网络研讨会] Java 11的第一印象

一年多以前,我们正焦急地等待新的模块化Java 9的到来。大约在同一时间,引入了一个新的发布周期,该周期将每6个月发布一次新版本,并提供长期支持(LTS)。每3年发行一次(或每6个版本发行一次&#…

linux可以http安装么,Linux 5下 http的安装

Web网站服务(一)http.conf中的全局配置ServerRoot:用于设置httpd服务的根目录,该目录中包括运行Web站点必须的目录和文件。默认根目录为:/usr/local/apache2Listen:用于设置Apache服务器监听的网络端口号,默认为80User…

APIGEE – API网关简介

在本文中,我想简要介绍一下APIGEE。 APIGEE主要提供现成的以下功能作为api网关。 协议转换 与任何协议进行转换,包括SOAP,REST,XML二进制或自定义 交通管理 开箱即用的灵活,分布式配额管理,速率限制和峰…

内存泄漏分析_调查内存泄漏第2部分–分析问题

内存泄漏分析这个小型系列的第一个博客介绍了如何创建一个非常泄漏的示例应用程序,以便我们可以研究解决服务器应用程序上基于堆的问题的技术。 它展示了Producer-Consumer模式的一个大问题,即消费者代码必须能够至少与生产者一样快(甚至不是…

将Java Flight Recorder与OpenJDK 11结合使用

Java Flight Recorder(JFR)曾经是Oracle JDK的商业附加组件。 由于它是与Java Mission Control一起最近开源的,因此使用OpenJDK 11的每个人现在都可以使用此出色的工具免费对Java应用程序进行故障排除。 JFR以前是专有解决方案,对…

c语言开发工具程序代码是什么文件,【C语言】开发工具--GCC使用入门

来自: 51CTO GCC使用入门通常所说的GCC是GUN Compiler Collection的简称,除了编译程序之外,它还含其他相关工具,所以它能把易于人类使用的高级语言编写的源代码构建成计算机能够直接执行的二进制代码。GCC是Linux平台下最常用的编…

无服务器安全性:将其置于自动驾驶仪上

Ack :本文是从个人经验以及从无服务器安全性的其他多个来源学到的东西的混合。 我无法在这里列出或确认所有这些信息; 但是,应该特别感谢The Register , Hacker Noon , PureSec以及Serverless Status和Serverless&…

c语言构造报文,构造一个缓冲区溢出的C语言的例子

满意答案wk05122013.06.01采纳率:45% 等级:12已帮助:15719人#include #include #include void function(char *str){char buffer[16];strcpy(buffer, str);}void evilfunc(){printf("Am I Evil?\n");}int main(int argc, char*…

mongodb插入速度每秒_MongoDB事实:商品硬件上每秒插入80000次以上

mongodb插入速度每秒在尝试一些时间序列集合时,我需要一个大型数据集来检查我们的聚合查询在增加数据负载的情况下不会成为瓶颈。 我们解决了5000万份文档,因为超出此数目我们仍然会考虑分片。 每次事件如下所示: {"_id" : Objec…

parallels for linux,在 Parallels Desktop 上安装 Remix OS PC

前言个人觉得呢,像 Remix OS 和 Phoenix OS 这样的国产安卓桌面操作系统还是很划时代的。赋予了安卓平台多任务操作的能力,这可以给二合一设备的体验带来一定的变化,但是不像 Surface 一样后面有巨硬给撑腰可以做大做强起来,但是这…

模拟用户输入并检查输出的简单方法

最近,我的一些学生向我询问了赫尔辛基大学MOOC提供的单元测试的机制,我检查了它们的实现,并认为这对于初学者了解实际发生的情况是有帮助的,因此在此发表了这篇小文章。 我们将以“机场”项目为例,这是OOP2第一周的最…

android bench内存测试,华为p10内存测试软件(androbench) v5.0.1 免费版

华为p10内存测试软件(androbench)其实是androbench这款内存测试软件,可以用于测试你的华为p10,是一款不错的华为p10内存测试软件,可以测试你的手机闪存性能,其他的手机也可以免费测试哦。华为p10内存测试软件介绍AndroBench是衡量…

android对话框字体大小,Android Dialog 设置字体大小的具体方法

先看下面图片:这是我在做登录页面的时候,调用系统的progressdialog 进行等待,可是看起来很不协调,左边的等待图片过大,右边文字过小,看起来老别扭,虽然功能上不存在什么问题,但是我有…

android custom toast,Android自定义Toast

核心代码:package com.huatec.myapplication;import android.content.Context;import android.graphics.Bitmap;import android.support.annotation.ColorInt;import android.support.annotation.DrawableRes;import android.view.Gravity;import android.view.Layo…