计划任务_crontab
1. crontab原理和使用
Cron 实际上是两个独立的程序。Cron damon, 或者叫做cron ,crond 它是伴随系统一起启动的常驻程序
来检查是否cron 在系统上运行, 用ps 命令 和 grep 过滤所需内容:
ps -ef|grep cron root 387 1 0 Jun 29 ? 00:00:00 crond root 32304 20607 0 00:18 pts/0 00:00:00 grep cron
进程 crond 每分钟激活一次,检查cron 文件列表,那里面记录着什么程序应该在什么时间来运行。如果有程序需要运行,它启动他们然后继续休眠,你不需要关系cron的运行机制,只需要知道它在运行,并且不停地轮询cron 任务列表。
The cron 列表文件 随系统的不同可能不同,但通常由下面的东西组成,每个用户的计划任务文件一般是放下面 :
在 /var/spool/cron 或者 /var/spool/cron/crontabs
这些文件是利用cron 的用户建立的,每一个(计划任务)文件使用了用户名字信息,你总能发现 一个root 文件 在 /var/spool/cron/root 。如果有一个叫jinx的用户使用了cron 那么一定存在一个 文件/var/spool/cron/jinx
ls -l /var/spool/cron -rw------- 1 root root 3768 Jul 14 23:54 root -rw------- 1 root group 207 Jul 15 22:18 jinx
cron的另一部分是 表 编辑器, crontab ,它用来编辑 /var/spool/cron 目录中的文件。crontab 自己知道哪的文件需要修改,能让事情变的更简单。
crontab 辅助工具有三个选项: -l , -r , -e .
-l 选项 列出当前 userid 文件中的 任务列表。
-r 选项 删除一个 cron 表文件
-e 编辑 文件
也可直接写一个计划任务文件,然后crontab 文件名 形成计划任务.
test@hefu:~$ pwd
/home/test
test@hefu:~$ cat test_cront.cron
* * * * * /home/test/1.sh
test@hefu:~$ crontab -l
no crontab for test
test@hefu:~$ crontab test_cront.cron
test@hefu:~$ crontab -l
* * * * * /home/test/1.sh
2.计划任务遇到的问题
因为是在 普通用户下 没法编写 /etc/crontab 文件,所以给了setfacl -m u:ubuntu:rw /etc/cront.
导致了计划任务都没有执行. 说明这种方法不可行.
3. 普通用户执行crontab
4.使用 crontab -e 与 直接编辑 /etc/crontab 的区别
Linux配置定时任务,大家都知道使用crontab这个系统功能,但有时候我们需要区分用户执行,下面就直接说一下2种方法的区别:
方法1:
使用命令 crontab -e 然后直接编辑定时脚本。
这样执行以后,属于用户自定义的,会被写到 /var/spool/cron 目录下,生成一个和用户名一致的文件,文件内容就是我们编辑的定时脚本。
[root@localhost cron.d]# cd /var/spool/cron
[root@localhost cron]# ll
总用量 4
-rw-------. 1 root root 52 12月 9 10:58 root
[root@localhost cron]# pwd
/var/spool/cron
[root@localhost cron]# cat root
30 03 * * * /root/automysqlbackup.sh
方法2:
使用命令 vi /etc/crontab 编辑定时脚本。
如:
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/ # run-parts
30 * * * * root /usr/sbin/ntpdate 210.72.145.4
(系统级的)做系统级配置我们会直接配置 /etc/crontab
(用户级的)一般还是建议大家使用 crontab -e ,这样系统也会帮着检查我们配置的脚本语法。
计划任务_crontab的更多相关文章
- C#编写一个在asp.net core 3.1下的简单的corn模式的计划任务和一个更简单的定时器类
asp.net core 下,新增了一个BackgroundService用来实现能在后台跑一个长久运行的任务,因此,也可以用来替换掉原来使用的static的Timer组件, Timer组件主要有以下 ...
- 【声明】前方不设坑位,不收费!~ 我为NET狂官方学习计划
发个通知,过段时间学习计划相关的东西就出来了,上次写了篇指引文章后有些好奇心颇重的人跟我说:“发现最近群知识库和技能库更新的频率有点大,这是要放大招的节奏啊!” 很多想学习却不知道如何规划的人想要一个 ...
- SQL Server-聚焦查询计划Stream Aggregate VS Hash Match Aggregate(二十)
前言 之前系列中在查询计划中一直出现Stream Aggregate,当时也只是做了基本了解,对于查询计划中出现的操作,我们都需要去详细研究下,只有这样才能对查询计划执行的每一步操作都了如指掌,所以才 ...
- ORACLE从共享池删除指定SQL的执行计划
Oracle 11g在DBMS_SHARED_POOL包中引入了一个名为PURGE的新存储过程,用于从对象库缓存中刷新特定对象,例如游标,包,序列,触发器等.也就是说可以删除.清理特定SQL的执行计划 ...
- 解析大型.NET ERP系统核心组件 查询设计器 报表设计器 窗体设计器 工作流设计器 任务计划设计器
企业管理软件包含一些公共的组件,这些基础的组件在每个新项目立项阶段就必须考虑.核心的稳定不变功能,方便系统开发与维护,也为系统二次开发提供了诸多便利.比如通用权限管理系统,通用附件管理,通用查询等组件 ...
- MSSQLSERVER执行计划详解
序言 本篇主要目的有二: 1.看懂t-sql的执行计划,明白执行计划中的一些常识. 2.能够分析执行计划,找到优化sql性能的思路或方案. 如果你对sql查询优化的理解或常识不是很深入,那么推荐几骗博 ...
- SQL Server-聚焦使用索引和查询执行计划(五)
前言 上一篇我们讲了聚集索引对非聚集索引的影响,对数据库一直在强调的性能优化,所以这一节我们统筹讲讲利用索引来看看查询执行计划是怎样的,简短的内容,深入的理解,Always to review the ...
- SQL Tuning 基础概述03 - 使用sql_trace和10046事件跟踪执行计划
1.使用sql_trace跟踪执行计划 1.1 当前session跟踪: alter session set sql_trace = true; //开始sql_trace alter session ...
- SELECT TOP 1 比不加TOP 1 慢的原因分析以及SELECT TOP 1语句执行计划预估原理
本文出处:http://www.cnblogs.com/wy123/p/6082338.html 现实中遇到过到这么一种情况: 在某些特殊场景下:进行查询的时候,加了TOP 1比不加TOP 1要慢(而 ...
随机推荐
- 查询每个分组中第N的一条记录
查询每个分组中第N的一条记录 -- 天气表,每天每个地区采集了多条记录的天气信息,但是时间只记录到了天,导致同一个地区同一天出现了多条天气记录 -- 目的:获取所有地区在每天中第N的一条记录 sele ...
- 1-HTML Attributes
下表列举了常用的Html属性 Attribute Description alt Specifies an alternative text for an image, when the image ...
- datatables:如何禁用一列的排序
第一列是checkbox列,不需要排序,所以需要禁用掉. 代码如下: var table = $('#example1').DataTable( { 'paging' : true, 'lengthC ...
- springcloud-1: 用官方的pom.xml配置添加依赖失败
在eclipse中用STS生成了一个springcloud应用,pom.xml的核心配置如下: <parent> <groupId>org.springframework.bo ...
- 基于数组的循环队列(C++模板实现)
循环队列使用数组实现的话,简单.方便.之前实现的队列,当尾端索引到达队列最后的时候,无论前面是否还有空间,都不能再添加数据了.循环队列使得队列的存储单元可以循环利用,它需要一个额外的存储单元来判断队列 ...
- MYSQL 获取当前星期方法
当前星期一: select subdate(curdate(),date_format(curdate(),'%w')-1) 当前星期日: select subdate(curdate(),date_ ...
- Python学习-字符编码浅析
1.什么是字符编码 既然是简述那肯定是简单明了.字符编码,看名字就是一种字符的编码格式,由于计算机内部采用二进制,想要将人类的语言字符输入到计算机就需要一种编码格式,这就是字符编码.字符------- ...
- linux显示完整目录
vim ~/.bashrc ##添加以下信息 export PS1='[\u@\h `pwd`]$ ' 然后保存退出 source ~/.bashrc 或者关机重新启动即可
- oracle user locked(timed)处理
故障现象: SQL> connect scott/scottERROR:ORA-01017: invalid username/password; logon deniedSQL> con ...
- Feign服务消费者
Feign的优点:面向接口,完全不用管实现,传入规定格式的数据就可以了 搭建消费者项目(FeignDemo) 1.创建pom.xml <project xmlns="http://ma ...