【Linux】crontab 定时任务 遇到几个问题
文章目录
- cron 与 crontab 区别
- bash xxx.sh 可以执行,但是crontab定时任务不执行,也没有报错信息,无日志;
- 首先区分 crontab -e 和 /etc/crontab
- crond[1655]: (bash) ERROR (getpwnam() failed)
- 定时任务输出内容写入 /var/spool/mail/root 文件
- 日志信息:Removed slice User Slice of root.
- crontab定时任务不执行注意点
- docker container 使用crontab
cron 与 crontab 区别
cron 是提供定时任务的服务
crontab 是在cron服务下具体每一条任务,可以理解为 cron table
bash xxx.sh 可以执行,但是crontab定时任务不执行,也没有报错信息,无日志;
* * * * * /root/xxx.sh /root/xxx.conf 1>/dev/null 2>&1
首先区分 crontab -e 和 /etc/crontab
- 使用命令
crontab -e
然后直接编辑定时脚本。 时间 +具体的名字 - 这样执行以后,属于用户自定义的,会被写到
/var/spool/cron
目录下,生成一个和用户名一致的文件
,文件内容就是我们编辑的定时脚本。 - (系统级的)做系统级配置我们会直接配置
/etc/crontab
- (用户级的)一般还是建议大家使用
crontab -e
,这样系统也会帮着检查我们配置的脚本语法。 - 如果用户级别定时任务(
crontab -e
)不能执行,可以尝试 改为 系统级别定时任务(/etc/crontab
)
crond[1655]: (bash) ERROR (getpwnam() failed)
- 场景:
在/etc/crontab
中,写入* * * * * bash /root/xxx.sh /root/xxx.conf 1>/dev/null 2>&1
,报错crond[1655]: (bash) ERROR (getpwnam() failed)
- 解决:
没有写用户root导致
* * * * * /root/xxx.sh /root/xxx.conf 1>/dev/null 2>&1 错误写法# * * * * * user-name command to be executed
* * * * * root /root/xxx.sh /root/xxx.conf 1>/dev/null 2>&1 正确的方式
定时任务输出内容写入 /var/spool/mail/root 文件
# 去掉末尾 2>&1
* * * * * root /root/xxx.sh /root/xxx.conf 1>/dev/null
日志信息:Removed slice User Slice of root.
/var/log/messages 文件部分信息
systemd: Created slice User Slice of root.
systemd: Started Session 1529 of user root.
systemd: Removed slice User Slice of root.
解决
这些是与片的创建和删除有关的消息,这些消息在systemd中用于对进程进行分组并管理其资源。
为什么默认情况下会记录它们,这使我无所适从,但是我已经看到了两种禁用它们的方法:
较少干扰的方法是通过创建具有以下内容的/etc/rsyslog.d/ignore-systemd-session-slice.conf来过滤掉它们:
if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-" or $msg contains "Removed Slice" or $msg contains "Stopping user-") then stop
然后重新启动rsyslogd systemctl restart rsyslog
更广泛的方法是通过编辑将systemd日志记录级别设置得更高一些/etc/systemd/system.conf:
#LogLevel=info
LogLevel=notice
参考:
https://unix.stackexchange.com/questions/267965/system-log-full-of-session-and-slice-messages
https://access.redhat.com/solutions/1564823
crontab定时任务不执行注意点
脚本中涉及文件路径时写
绝对路径
;脚本执行要用到环境变量时,通过source命令显式引入,例如:
#!/bin/sh
source/etc/profile
- 当手动执行脚本没问题,但是crontab不执行时,可以尝试在crontab中直接引入环境变量解决问题,例如:
0 * * * * /etc/profile;/bin/sh/path/to/myscript.sh
参考链接:
https://zhang.ge/5093.html
docker container 使用crontab
见:https://muguang.me/it/2659.html
【Linux】crontab 定时任务 遇到几个问题相关推荐
- python定时任务crontab_【Python】Linux crontab定时任务配置方法(详解)
CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. cron 系统调度 ...
- Linux crontab 定时任务命令详解
Linux Crontab 定时任务 命令详解 [日期:2016-02-13] 来源:Linux社区 在工作中需要数据库在每天零点自动备份所以需要建立一个定时任务.我选择在Linux下使用Cronta ...
- Linux | crontab定时任务及开机自启项
本文总结如何使用 crontab 创建定时任务及开启自启项 1. 本文基于 CentOS 7.9 系统所写. Updated: 2022 / 9 / 5 Linux | crontab定时任务及开机自 ...
- Linux crontab定时任务配置方法(详解)
id="BAIDU_DUP_fp_iframe" src="https://pos.baidu.com/wh/o.htm?ltr="> 脚本之家 服务器常 ...
- linux下crontab allow,【Python】Linux crontab定时任务配置方法(详解)
CRONTAB概念/介绍html crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供以后读取和执行.linux ...
- linux crontab 定时任务 计划任务 不执行 原因
前言 最近在工作中遇到了一些问题,crontab定时任务居然不执行,后来我在网上找的时候发现网上主要说了这几个原因: 1 crond服务未启动 crontab不是Linux内核的功能,而是依赖一个cr ...
- Linux Crontab 定时任务 及 Ubuntu 中cron指令使用
linux内置的cron进程能帮我们实现很多自动化需求,利用cron搭配shell脚本,即便十分复杂的指令也没有问题. 介绍 我们经常使用的是crontab命令是cron table的简写,我们可以在 ...
- Linux Crontab定时任务
一.说明 很多项目需要设置一定服务器的定时任务Crontab来实现一些脚本功能,所以在这里整理总结一下. 环境:linux + centos6.8 二.准备 1.查看服务器的crontab是否在服务器 ...
- linux crontab 定时任务 邮件问题 及其相关的 dead.letter 问题
最近开发项目的时候发现公司服务器用root账号登录的时候 一直会提示有新的信件,一直提示一直提示. 联想到另一台服务器上 的dead.letter文件每天都不断的变大 而且在 root家目录里 ,系 ...
- linux 计划任务格式,linux crontab 定时任务格式和使用方法2019-01-13
前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个 ...
最新文章
- jmeter定时器的使用_jmeter压测学习30定时器之固定定时器(sleep等待时间)
- macOS Big Sur 11.1更新了!苹果macOS Big Sur 11.1正式版发布
- 9.26-CSS 背景 字体 文本 边框 以及其他
- Android开发经典书籍下载——《Android 4高级编程》《疯狂Android讲义》《Android应用开发详解(郭宏志)》《Android应用案例开发大全》《Android 3D游戏开发技术》
- VB获取窗体的位置和大小
- LED恒流驱动芯片NU9910用于LED舞台灯光驱动控制芯片拼对拼SMD802
- 数据结构之什么是数组?
- Excel的去重、分列
- 2021年国考申论写作之如何快速改进作文书写
- WebApp最佳实践用户体验篇:针对多种屏幕尺寸合理设计
- 基于51单片机的校园教室打铃系统
- python面试题搜集
- 如何在mac下制作微信表情
- html与css常用标签大全
- 排序算法c语言描述---归并排序
- 如何更好的做计划-SMART原则
- 红杉观点|生成式AI:一个创造性的新世界
- 如何设置git和git gui的界面语言为中文
- 发改委新政:再为新能源汽车充电桩和储能行业护航
- 什么是 TCP/IP?
热门文章
- DL之SPP-Net:SPP-Net算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- Matlab:单幅图象的暗原色先验去雾改进算法,能够很好地改进天空或明亮部分色彩失真问题
- ML之k-NN:k-NN实现对150朵共三种花的实例的萼片长度、宽,花瓣长、宽数据统计,根据一朵新花的四个特征来预测其种类
- TF学习——TF之Tensorboard:Tensorflow之Tensorboard可视化简介、入门、使用方法之详细攻略
- 一点点学习PS--实战四
- 【思维题 状压dp】APC001F - XOR Tree
- is 和 == 区别 编码和解码
- appium+python自动化33-解锁九宫格(TouchAction)
- 03_4_this关键字
- NEFU 503 矩阵求解 (非01异或的高斯消元)