-
2021-05-27 08:06:35
Linux下可以利用crontab创建定时任务。
常用搭配
crontab -e 编辑任务
crontab -l 查看所有任务[该用户]
crontab -r 取消所有任务[该用户]
任务格式
× × × × × +命令(具体任务)
前5个参数表示时间,依次为:
参数 范围
分钟 0-59
小时 0-23
日期 1-31
月份 1-12
星期 0-6(0代表星期日)
特殊符号
为了精确表示定时,需要一些特殊符号来描述具体的任务执行时间。有以下几个符号:
“/” 代表每,每隔多长时间
“*” 代表任何时间
“-” 代表从某时刻到另一时刻的一段时间
“,” 代表离散的时间
案例
0 8 1 1 0command
每年1月1日8点执行command
*/30 * * * *command
每隔30分钟执行command
0 6-18 * * *command
每天6点到18点执行command
30 6,9,12 * * *command
每天6点30、9点30、12点30执行command
0 6-18/3 * * */user/bin/PHP
/var/www/html/save.php每天6点到18点每隔3个小时执行用/user/bin/php执行/var/www/html/save.php
注意
crontab中设置的command都是相对路径的,所以命令中执行的脚本应当尽量设置为绝对路径。另一方面,脚本中假如有输出会输出到当前用户目录下,因此脚本中如果有路径的话,也请设置为绝对路径!
crontab报错会通过邮件发送给用户,centos下目录为 /var/spool/mail/user,长期积累可能造成/var/下占用空间过大,应及时清理。(dG in vi)
以上所述是小编给大家介绍的详解linux下利用crontab创建定时任务,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
更多相关内容 -
Linux普通用户设置Crontab定时任务并运行(亲测有效)
2018-03-28 17:07:26安装crontab:使用命令:yum install crontabs**在普通用户下执行**2.创建一个新的crontab文件,并写入执行的命令(每分钟向hello文件中写I am kk's crontab)使用命令:vim cronTest内容:* * * * * echo "I am ....Crontab命令及用法我这里就不多做解释了,直接从设置Crontab开始。
**在root用户下执行**
1.安装crontab:
使用命令:yum install crontabs
**在普通用户下执行**
2.创建一个新的crontab文件,并写入执行的命令(每分钟向hello文件中写I am kk's crontab)
使用命令:vim cronTest
内容:* * * * * echo "I am kk's crontab" >> /home/kk/hello
3.把新建的cronTest文件提交给cron进程,此时会在/var/spool/cron目录下生成执行文件,文件名就是用户名(例如我普通用户名为kk,则生成的文件名即为kk)
使用命令:crontab cronTest
**在root用户下执行**
4.接下来使用"su"提权到root用户下,进入/var/spool/cron目录下,使用"ll"命令查看cron目录下的文件权限状况,可以看到对应的文件是没有执行权限的,需进行授权为可执行:
使用命令:chmod 777 xxx(xxx指文件名)
5.重启Crontab服务,使上述任务立马生效:
使用命令:/sbin/service crond restart
然后,su xxx(用户名)回到普通用户
**在普通用户下执行**
7.进入/home/kk目录下,使用cat hello查看文件内容,会发现"I am kk's crontab"。过几分钟,再次查看,如果内容条数增多,证明当前的Crontab定时任务已正确运行。
-
以普通用户执行定时任务(crontab)
2020-03-11 14:23:53以普通用户执行定时任务(crontab) (用root权限执行下面命令) 1、以普通用户test1开启一个定时任务 crontab -e -u test1 2、定时任务是执行shell脚本,usertest.sh如下,顺便打印执行时间: #!/bin/bash declare...以普通用户执行定时任务(crontab)
(用root权限执行下面命令)
1、以普通用户test1开启一个定时任务crontab -e -u test1
2、定时任务是执行shell脚本,usertest.sh如下,顺便打印执行时间:#!/bin/bash declare -i i=0 while ((i<=2)) do echo "Normal user can perform crontab!!! >>/home/test1/printcontent.txt let i++ done time1=$(date "+%Y-%m-%d %H:%M:%S") echo $time1
3、将所有与定时任务相关文件的所有者设置成用户test1
chown -R test1:test1 /home/test1/
4、可以查看日志、邮件,来查看执行情况(每执行一次定时任务会发一封邮件到用户的邮箱):
查看定时日志:tail -f /var/log/cron
查看用户test1的邮箱,有打印执行脚本的时间,无报错,即执行定时任务成功:
tail -f /var/spool/mail/test1
注意 :
当程序在你所指定的时间执行后,系统会发一封邮件给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1。补充:
/bin/systemctl start crond.service 启动crond
/bin/systemctl restart crond.service 重启crond
/bin/systemctl stop crond.service 停止crond
/bin/systemctl reload crond.service 重新载入crond配置
/bin/systemctl status crond.service 查看crond状态crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。
crontab –l : 显示 crontab 文件。
crontab -r : 删除 crontab 文件。
crontab -ir : 删除 crontab 文件前提醒用户。 -
linux中普通用户的定时任务详解
2021-01-10 19:42:56普通用户定义crontab定时任务:比如oracle用户定义一个定时任务:每分钟打印当前目录 [oracle@node2 ~]$ crontab -e */1 * * * * /bin/ls -al > /tmp/ls.log 如何判断定时任务有没有执行?首先crond服务要处于运行... -
授权普通用户Linux crontab定时任务
2019-03-21 09:41:35项目需求,在Linux下做个定时任务,而且是普通用户下可控的。...1.创建任务(普通用户) crontab-e编辑计划任务 加上任务,如下行 */2****cd/home/sky/apache-activemq-5.11.1/bin/;./activemqs...项目需求,在Linux下做个定时任务,而且是普通用户下可控的。网上找资料,方向没找对,就暂时用root用户做定时任务。最后别人提示用sudo,才有了这篇文章。
下面就说一下方法:
1. 创建任务(普通用户)
crontab -e 编辑计划任务加上任务,如下行
*/2 * * * * cd /home/sky/apache-activemq-5.11.1/bin/;./activemq start(每两分钟启动一次,见下面语法结构)
2. 给普通用户授权sudo(root用户)
给普通用户授权sudo,用sudo 提升普通用户service命令权限1)切换root用户,可以用vim /etc/sudoers对文件编辑(先赋权限chmod u+w /etc/sudoers),但最好使用visudo命令编辑,原因两点:一是它能够防止两个用户同时
修改它;二是它也能进行有限的语法检查。
2)找到"root ALL=(ALL) ALL",在下面加一行“XXX ALL=(ALL) ALL”即完成授权
“XXX”是用户名。
3)此时该用户拥有root所有权限,要做一下限制,先说一下上面三个ALL的含义:
①网络中的主机名(建议用ALL,实际不确定远程主机名),
②目标用户,也就是以谁的身份去执行命令(建议ALL)
③命令(最好不用ALL,否则方法二就没意义了,多个命令逗号隔开),默认5分钟sudo密码过期,怕麻烦命令前加“NOPASSWD:”
所以上面增加内容应改为:
“XXX ALL=(ALL) NOPASSWD:/sbin/service”
3. 重新启动任务计划
方法一: 切换到root用户 service crond restart(安全性考虑,不建议此方法)方法二: 切换普通用户,执行sudo service crond restart即可
4. 语法机构
minute hour day month dayofweek commandminute - 从0到59的整数
hour - 从0到23的整数
day - 从1到31的整数 (必须是指定月份的有效日期)
month - 从1到12的整数 (或如Jan或Feb简写的月份)
dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
command - 需要执行的命令(1、多行命令用“;”或者“&&”隔开,“;”不管命令是否出错都会连续执行下去,“&&” 出错则停止。 2、可以是脚本)
(网上很多资料)
5. 常用命令
crontab –u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数crontab –l //列出某个用户cron服务的详细内容
crontab –r //删除某个用户的cron服务
crontab –e //编辑某个用户的cron服务
service crond start
service crond stop
service crond restart
service crond reload
-
Linux下普通用户无法直接使用crontab问题
2021-05-10 11:01:27问题情况:使用的一个Linux服务器中有一台至始至终crontab无法在普通用户下执行,执行时总是提示错误:seteuid: Operation not permitted,要使用crontab还要切换到root用户下,再执行crontab -u username -e来编辑... -
crontab计划任务
2022-04-05 21:08:01crontab计划任务 -
Linux普通用户创建计划任务
2021-12-13 20:52:03Linux-普通用户-创建计划任务 系统:银河麒麟 版本:V10 架构:x86 权限:普通用户权限 简单步骤 创建计划任务文件task1 * * * * * echo "helloworld!" >/home/test/abc.txt 上述计划任务的意思是:... -
linux 环境下使用crontab 创建、删除、修改、查看定时任务
2019-08-30 14:04:40在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的简写。 ... -
[重庆思庄每日技术分享]-如何禁止普通用户使用crontab 命令?
2022-02-15 11:16:27有些时候,我们不希望操作系统上普通用户去创建crontab计划任务,统一由ROOT用户创建,那么怎么禁止普通用户,比如 oracle用户调用crontab 命令呢 ? 修改 /etc/cron.deny,或者修改/etc/cron.allow 加上对应得用户... -
Crontab的简单使用和创建第一个自动定时任务执行python脚本
2019-03-19 08:58:21在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的简写... -
crontab 普通用户添加的计划任务不能执行
2019-09-18 05:38:03背景:项目中需求数据库备份,使用的普通用户。添加的计划任务发现并不能按时执行。 排查思路: 测试脚本,手动执行脚本完全没有问题。 添加计划任务,发现时间过了还没有执行。?????? 解决办法:针对普通... -
Linux禁止普通用户使用crontab命令
2018-05-09 20:15:00cron计划任务默认root用户与非root用户都可以执行,当然如果在安全方面想禁用这部分用户,则可以通过两个文件来解决: ...这两个文件有优先级,普通用户在执行crontab命令的时候1、系统先检测cron.... -
Linux怎么使用crontab设置定时任务
2022-01-22 13:29:12Linux怎么使用crontab设置定任务 定时任务介绍和使用 让系统在将来的指定时间点执行某些任务(程序) 可以周期性执行也可以仅仅执行一次 系统计划任务配置相关文件: /etc/cron.d/ /etc/cron.d/0hourly 系统每小时... -
Crontab定时任务 - 定时执行python脚本部署
2020-12-10 09:27:14* * * * * commandM H D m d commandM: 分(0-59)H:时(0-23)D:天(1-31)m: 月(1-12)d: 周(0-6) 0为星期日* 代表取值范围内的数字/ 代表"每"- 代表从某个数字到某个数字, 代表离散的取值(取值的列表)Crontab脚本示例... -
Linux crontab定时任务配置方法(详解)
2021-11-04 17:41:52CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令...crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过cron.deny 和 cron.allow 这两个文 -
oracle用户下的crontab没有执行_Linux下的计划任务at,batch,crontab使用技巧
2020-11-12 10:26:51前言:研究下linux下的计划任务,能够执行计划任务有3个命令at,batch,crontab,所谓的计划任务就是定时启动某个程序,可以是一组shell脚本,也可以是单一的输出。计划任务at命令:at在ubuntu,kali里面都是没有... -
crontab(计划任务)
2021-11-14 22:54:23---------------- 单个用户的计划任务(单一一次的计划任务,周期性的计划任务) 系统级别的计划任务 (大多是周期性的计划任务) 单一一次的计划任务 at 周期性的计划任务 创建 cron表,通过命令crontab -e来创建 ... -
Redhat crontab定时任务
2020-05-28 22:22:18Redhat crontab定时任务1.查看cornd服务状态2.查看当前用户定时任务3.查看其他用户定时任务方法14.查看其他用户定时任务方法25.查看系统级定时任务6.为当前用户新增定时任务7.为其他用户新增定时任务8.定时任务各... -
crontab定时任务不执行的可能原因
2020-11-09 10:14:43最近在工作中遇到了一些问题,crontab定时任务居然不执行,后来我在网上找的时候发现网上主要说了这5个原因: 1 crond服务未启动 crontab不是Linux内核的功能,而是依赖一个crond服务,这个服务可以启动当然也可以... -
Linux定时任务(1)— crontab
2021-05-11 02:37:51执行定时任务crontab 执行循环任务at 执行一次性任务crontab简介Linux 系统有个 crond 程序,对应 cron 这个守护进程[ps -ef |grep cron]。它在系统中会每分钟扫描定时任务,读取一个或多个配置文件,这些配置文件中... -
Linux计划任务 Crontab 详解
2021-05-15 03:21:32A:计划任务,创建和管理在指定时间自动执行的任务。注意:要是任务计划在指定时间自动运行,计划任务的服务必须是启动的。1、使用at命令调用atd进程设置在某个特定的时间,执行一次性任务。2、使用crontab命令调用... -
crontab定时任务及权限
2021-01-21 01:42:04crontab [-u username] [-l|-e|-r]参数:-u: 只有root才能进行这个任务,也即帮其他用户新建/删除crontab工作调度;-e: 编辑crontab 的工作内容;-l: 查阅crontab的工作内容;-r: 删除所有的crontab的工作内容,若仅要... -
linux环境中,如何通过手动创建crontab文件的方式来设置crontab定时调度任务?
2021-05-16 00:51:46需求描述:之前在创建定时任务的时候,都是通过cronab -e的方式进行创建,今天在做通过脚本部署定时任务的时候,就想,通过crontab -e编辑的定时任务存放在哪个文件里,是否,可以手动的编辑这个文件来创建定时任务呢,在此... -
【Python】Linux crontab定时任务配置方法(详解)
2020-12-10 14:46:47CRONTAB概念/介绍crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和...crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一... -
Crontab定时任务配置
2019-10-03 09:40:55CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。 ...crontab命令允许用户提交、编辑或删除相...