首页 > 系统相关 >linux 定时任务

linux 定时任务

时间:2023-06-10 15:11:42浏览次数:36  
标签:bin crontab 时程表 etc 任务 sh linux 定时 执行

可以用非root用户创建定时任务

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

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

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

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

语法

crontab [ -u user ] file
crontab [ -u user ] { -l | -r | -e }

说明:

crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。

-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。

参数说明

  • e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
  • r : 删除目前的时程表
  • l : 列出目前的时程表

使用 crontab -e 命令打开时程表
使用 crontab -l 查看当前时程表

时间格式如下:

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
实例

42 14 * * * . /etc/profile;/bin/sh /home/st_bigdata/daily_update/run.sh > /home/st_bigdata/daily_update/cron.out 2>&1
image
上图为创建每天14:42执行的定时任务。

脚本无法执行问题

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

解决方法:
  • 1、所有命令需要写成绝对路径形式,如: /usr/local/bin/docker。
  • 2、在 shell 脚本开头使用以下代码:
#!/bin/sh

. /etc/profile
. ~/.bash_profile
  • 3、在 /etc/crontab 中添加环境变量,在可执行命令之前添加命令 . /etc/profile;/bin/sh,使得环境变量生效,例如:
    42 14 * * * . /etc/profile;/bin/sh /home/st_bigdata/daily_update/run.sh > /home/st_bigdata/daily_update/cron.out 2>&1

标签:bin,crontab,时程表,etc,任务,sh,linux,定时,执行
From: https://www.cnblogs.com/yimeimanong/p/17471290.html

相关文章

  • 关于Amazon Linux1 与 Amazon Linux2 - 操作系统-支持及生命周期的说明
    对于公司服务器操作系统而言,一旦操作系统的提供商在将要停止对其更新和技术支持时,就应该提前考虑升级或者更换新的OS在aws平台,有一些主机使用了AmazonLinux1与AmazonLinux2操作系统,关于这两个操作系统,笔者曾经咨询过AWS官方,收到了如下一些回复(笔者写此文时,其时aws也早在今......
  • 在Linux系统中创建虚拟网卡
    .....创建虚拟网卡:>$sudoiplinkadddevvirnet0typeveth其中virnet0是虚拟网卡的名字,可以换成你喜欢的名字。接下来为虚拟网卡配置IP地址:>$sudoipaddradd192.168.99.2/24devvirnet0激活虚拟网卡,以下两条命令使用任意一条均可:>$sudoiplinksetv......
  • Rocky Linux 安装 Open Project
    一、概要1.环境(1)RockyLinux9.12.准备(1)SSL证书a.创建私钥目录sudomkdir/etc/ssl/privateb.生成证书和密钥OpenSSL系列c.移动证书sudomvopenproject.example.com.crt.pem/etc/ssl/certssudomvopenproject.example.com.key.pem/etc/ssl/private......
  • Rocky Linux 安装 OpenSSL 1.1.1
    一、概要1.环境(1)RockyLinux9.1(2)OpenSSL1.1.1u2.背景总所周知,RockyLinux9.1自带的OpenSSL是3.0.7版本(如下图),但是有些程序依然依赖OpenSSL1.1.x版本,这就要求我们掌握在同一个主机下同时安装两个不同版本的OpenSSL方法。二、安装与配置1.依赖(1)更新s......
  • 《Linux基础及应用教程(基于CentOS7) 第2版》pdf电子书免费下载
    本书以CentOS 7为蓝本,分3篇介绍了Linux操作系统的使用和配置。操作基础篇介绍了Linux的基础知识、Linux系统的安装、Shell和字符操作界面的使用;系统与安全篇依次介绍了账户管理、权限管理、进程管理、存储管理、网络配置、网络工具、RPM包管理、基础架构服务、系统日常维护、服务......
  • 【Linux】vg数据恢复之vgimportclone
    1.背景--WX:DBAJOECN--OSversion:RHEL7.9用户误操作删除了应用系统中的文件,基于操作系统都是vm机器,并且vmsphere只有snapshot备份,因此采用恢复vmsnapshot后将需要的存储挂在到新的OS上,从而实现LV恢复数据。https://www.linux.org/docs/man8/vgimportclone.html2.准......
  • Linux删除文件名为乱码的文件或文件夹
    在Linux系统下命令行是无法输出汉字的,如果要删除带有汉字的文件或文件夹,只需要查看文件的节点号,删除对应的节点号即可。首先我们要查看文件的节点号查看节点号执行ls-i命令,查看文件的节点号(节点号为每个文件前面显示的数字)找到文件的节点号便可以进行下一步操作,删除节点......
  • Linux数据分析之九个给力的命令行工具
    要对数据进行分析,大家会从哪里入手?对于大多数熟悉了图形工作环境的朋友来说,电子表格工具无疑是第一选项。但命令行工具同样能够更快更高效地解决问题——且只须稍微学习即可上手。大部分此类工具冻严格局限于Linux,而多数可同样运行在Unix甚至是Windows环境之下。在今天的文章中,我......
  • Linux数据分析之九个给力的命令行工具
    要对数据进行分析,大家会从哪里入手?对于大多数熟悉了图形工作环境的朋友来说,电子表格工具无疑是第一选项。但命令行工具同样能够更快更高效地解决问题——且只须稍微学习即可上手。要对数据进行分析,大家会从哪里入手?对于大多数熟悉了图形工作环境的朋友来说,电子表格工具......
  • vmware_linux_交叉编译
    安装ubuntu使用清华源的服务器来下载,很快,搜索ubuntuhttps://mirrors.tuna.tsinghua.edu.cn/ 选择版本即可下载,由于版本不稳定,建议不要下载高本版的。......