需求描述:

  之前在创建定时任务的时候,都是通过cronab -e的方式进行创建,今天在做通过脚本部署定时任务的时候,

  就想,通过crontab -e编辑的定时任务存放在哪个文件里,是否,可以手动的编辑这个文件来创建定时任务呢,

  在此找到这个定时任务的文件,然后通过手动创建文件,看是否能够正确的执行.

操作过程:

1.通过crontab -e来创建定时任务

[root@testvm02 ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab #安装了新的crontab
[root@testvm02 ~]# crontab -l
*/ * * * * /usr/sbin/ntpdate 192.168.53.22

2.查看root的crontab对应的文件

[root@testvm02 cron]# pwd
/var/spool/cron #crontab文件在这个目录下,每个用户一个单独的文件.
[root@testvm02 cron]# ls -l
total
-rw------- root root Aug : root
[root@testvm02 cron]# cat root #查看root文件,就是刚刚编辑好的定时任务,该定时任务的作用是进行时间同步.
*/ * * * * /usr/sbin/ntpdate 192.168.53.22

3.通过普通用户,创建crontab,查看生成的crontab文件

[root@testvm02 cron]# ls -l
total
-rw------- aiprd aiprd Aug : aiprd #用户和用户组都是普通的用户的.
-rw------- root root Aug : root

4.通过crontab -e将crontab中内容删除掉

[root@testvm02 cron]# crontab -e
crontab: installing new crontab
[root@testvm02 cron]# crontab -l
[root@testvm02 cron]# cat root #root文件中的内容也被删除掉了.

5.手动将定时任务的内容输入到root文件

[root@testvm02 cron]# echo '*/1 * * * * /usr/sbin/ntpdate 192.168.53.22' >> /var/spool/cron/root
[root@testvm02 cron]# cat root
*/1 * * * * /usr/sbin/ntpdate 192.168.53.22
[root@testvm02 cron]# ls -l root
-rw------- 1 root root 44 Aug  8 10:25 root

6.修改系统时间为一个错误的时间,看看几分钟之后,时间能否被正确的修改

[root@testvm02 cron]# date -s "2018-08-08 01:00:00"
Wed Aug :: CST
[root@testvm02 cron]# clock -w
[root@testvm02 cron]# date
Wed Aug :: CST
[root@testvm02 cron]# date
Wed Aug :: CST
[root@testvm02 cron]# date
Wed Aug :: CST
[root@testvm02 cron]# date
Wed Aug :: CST
[root@testvm02 cron]# date
Wed Aug :: CST
[root@testvm02 cron]# date
Wed Aug :: CST
[root@testvm02 cron]# date
Wed Aug :: CST
You have new mail in /var/spool/mail/root
[root@testvm02 cron]# date
Wed Aug :: CST

备注:在一分钟之后,系统时间,自动同步为正确的时间了.说明,直接对文件进行编辑也是能够是的crontab调度成功的.

6.对于一个普通用户如何来创建这个定时任务的文件

[root@testvm02 cron]# echo '*/1 * * * * date > /tmp/date.log' >> /var/spool/cron/aiprd
You have new mail in /var/spool/mail/root
[root@testvm02 cron]# ls -l /var/spool/cron/aiprd
-rw-r--r-- root root Aug : /var/spool/cron/aiprd #并没有修改这个文件的权限,用户和用户组.

7.切换到普通用户下,执行crontab -l,然后查看具体有没有日志输出

[root@testvm02 ~]# su - aiprd
[aiprd@testvm02 ~]$ crontab -l
*/ * * * * date > /tmp/date.log #包含了刚刚编写的内容.
[aiprd@testvm02 ~]$ tail -f /tmp/date.log #查看也发现有任务确实在执行.
Wed Aug :: CST 2018
[aiprd@testvm02 ~]$ ls -l /tmp/date.log
-rw-r--r-- 1 aiprd aiprd 29 Aug  8 10:36 /tmp/date.log #同时,生成的文件,也是aiprd用户和用户组.

备注:说明,对于普通用户,也可以在root用户下直接编辑/var/spool/cron/文件,为普通用户创建crontab定时任务.可以不考虑该文件的权限,如果为了更安全的考虑,可以修改文件的用户和用户组.

[root@testvm02 cron]# chown aiprd:aiprd /var/spool/cron/aiprd
You have new mail in /var/spool/mail/root
[root@testvm02 cron]# chmod /var/spool/cron/aiprd
[root@testvm02 cron]# ls -l /var/spool/cron/aiprd
-rw------- aiprd aiprd Aug : /var/spool/cron/aiprd

备注:实践证明,修改不修改用户组,权限都不影响调度,但是为了和默认使用contab创建的文件的权限和用户组保持一致性,可以这么设置.

小结:

  可以通过直接在/var/spool/cron目录下为特定的用户创建crontab文件,就可以实现用户的定时任务调度,可以为root用户和普通用户进行创建.前提在root下执行.

注意:

  普通用户没有在cron中写文件的权限,所以要在root用户下执行创建编辑文件.

文档创建时间:2018年8月8日10:41:53

linux环境中,如何通过手动创建crontab文件的方式来设置crontab定时调度任务?的更多相关文章

  1. linux环境中通过useradd命令,创建用户的时候指定用户的base-dir

    需求说明: 今天一个同事,问了一个这样的问题,在linux环境中,创建用户的时候,默认的是在/home目录下创建一个与用户名相同的家目录, 如何能够将这个/home更换成一个其他的,比如/opt/ap ...

  2. 她娇羞道“不用这样细致认真的说啊~~”———详细图解在Linux环境中创建运行C程序

    她娇羞说,不用这样细致认真的说啊———详细图解在Linux环境中创建运行C程序“不,这是对学习的负责”我认真说到 叮叮叮,停车,让我们看看如何在Linux虚拟机环境中,创建运行C程序 详细图解在Lin ...

  3. [软件测试]Linux环境中简单清爽的Google Test (GTest)测试环境搭建(初级使用)

    本文将介绍单元测试工具google test(GTEST)在linux操作系统中测试环境的搭建方法.本文属于google test使用的基础教程.在linux中使用google test之前,需要对如 ...

  4. linux环境中通过/dev/urandom设备产生随机密码

    需求说明: 今天在调试SVN的时候,需要创建用户的随机密码,想了下,在linux环境中是否能够生成呢,就搜索了下, 然后结合看到的帖子,分析一个可以生成密码的命令,在此记录下. 操作过程: 1.通过/ ...

  5. linux环境中,多个命令之间,通过&& ||执行,命令之间执行的逻辑是什么?

    需求描述: 最近在写一个脚本的时候,要判断一个文件是否存在,有怎么样,没有就创建,这个时候 看到了一个test 结合 || 或者 &&的写法,就查看了下资料记录下是怎么个玩法. 操作过 ...

  6. linux环境中安装ftp服务

    需求说明: 今天项目中有一个新的需求,需要在linux环境中搭建一个ftp服务,在此记录下. 操作过程: 1.通过yum的方式安装ftp服务对应的软件包 [root@testvm01 ~]# yum ...

  7. linux环境中,查看域名的DNS信息?

    需求说明: 今天在linux主机上,要查询一个域名是在哪个DNS上进行解析的,这个域名下面还有哪些的地址 操作过程: 1.linux环境中通过nslookup命令来进行查看 [deployer@CBS ...

  8. 【事件中心 Azure Event Hub】在Linux环境中(Ubuntu)安装Logstash的简易步骤及配置连接到Event Hub

    在文章([事件中心 Azure Event Hub]使用Logstash消费EventHub中的event时遇见的几种异常(TimeoutException, ReceiverDisconnected ...

  9. (3)ElasticSearch在linux环境中安装与配置head插件

    1.简介 ElasticSearch-Head跟Kibana一样也是一个针对ElasticSearch集群操作的API的可视化管理工具,它提供了集群管理.数据可视化.增删改查.查询语句等功能,最重要还 ...

随机推荐

  1. TCP/IP协议层

    除了少数外,OSI协议簇本身已经成为Internet历史早期的遗留产物.当前OSI协议对于网络技术的贡献看来主要是对学习网络的学生讲述模块化的协议簇时,可以引用它的参考模型进行说明等的有限用途. 下面 ...

  2. HashMap源码学习

    HashMap就是将key做hash算法,然后将hash值映射到内存地址,直接取得key所对应的数据. 关于hash算法的原理知识在之前的博客中有讲到:哈希表之一初步原理了解. 在Java中的Hash ...

  3. Android7.0 Doze模式分析(一)Doze介绍 & DeviceIdleController

     參考:http://blog.csdn.net/gaugamela/article/details/52981984 在Android M中.Google就引入了Doze模式.它定义了一种全新的 ...

  4. git基本操作:使用git将本地代码上传到GitHub

    一.创建github repository(仓库) 1.登录GitHub 创建GitHub仓库,首先需要登录GitHub,GitHub网址:https://github.com.如果没有GitHub账 ...

  5. -26628 loadrunner

    在Vuser脚本编译执行无误情况下,在controller中进行并发操作,并发数设为10,只通过5个,失败的报错信息是:   Action.c(15): Error -26628: HTTP Stat ...

  6. [Forward]Ten Caching Mistakes that Break your App

    Caching large objects, duplicate objects, caching collections, live objects, thread unsafe caching a ...

  7. QVariant类及QVariant与自定义数据类型转换的方法

    这个类型相当于是Java里面的Object,它把绝大多数Qt提供的数据类型都封装起来,起到一个数据类型“擦除”的作用.比如我们的 table单元格可以是string,也可以是int,也可以是一个颜色值 ...

  8. 关于Unity中的光照(六)

    反射探头 1:镜子金属等具有光滑表面的物体都会反射,而游戏中计算实时反射非常消耗CPU的资源, unity5.0新增了一个反射探头的技术,通过采样点,生成反射Cubemap,然后通过特定的着色器从Cu ...

  9. 关于Unity中天空盒的使用

    天空盒 是一个盒子,一个正方形的盒子.其实本身也是一种shader,需要材质球做载体. 1: 一个场景是由6幅正方形的纹理图无缝拼接而成, 在视野看来位于真实的视野一样;2: 两种天空盒: 场景天空盒 ...

  10. mysql 查看某个库下面某个表的所有列字段, columnName

    mysql 查看某个库下面某个表的所有列字段 select COLUMN_NAME as columnName from information_schema.COLUMNS where table_ ...