需求描述:

  之前在创建定时任务的时候,都是通过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. C语言 · 01背包

    最近老碰到DP问题,没整过,在网上有不少资料,转载此篇自:http://blog.csdn.net/libin56842/article/details/9338841 有N件物品和一个容量为V的背包 ...

  2. 华为路由器GRE配置

    1. 协议简介 gre(generic routing encapsulation,通用路由封装)协议是对某些网络层协议(如ip 和ipx)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议 ...

  3. eclipse多个项目保存到gitee上一个仓库中

    自己练习创建到多个项目,想同步到gitee上一个仓库中. 1. 首先在gitee上创建项目springtest 2. 在eclipse默认项目存放到地方创建文件夹springtest,用来同步gite ...

  4. Sublime Text 3 安装与配置

    1.下载: http://www.sublimetext.com/3 2.支持网站 https://packagecontrol.io/ 3.字体.主题风格等设置 当需要更改主题时,直接可以通过“pr ...

  5. Oracel扩展表空间

    --表空间查看 SELECT tbs, sum(totalM) as total, sum(usedM) as UserdM, sum(remainedM) as remainedM, as User ...

  6. NetBeans Support Weblog

    https://blogs.oracle.com/NetBeansSupport/entry/tomcat_log_files ———————————————————————————————————— ...

  7. Linux Makefile简单模板

    ########################################### #Makefile for simple programs ########################## ...

  8. Some Parameter Interpretation On Using Mininet

    MiniNet使用很简单,下面以下面帮助界面截图为例,简单讲述常见的几个命令即可: sudo mn --topo single,3--mac --switch ovsk--controller rem ...

  9. Ubuntu Linux系统三种方法添加本地软件库

    闲着没事教教大家以Ubuntu Linux系统三种方法添加本地软件库,ubuntu Linux使用本地软件包作为安装源——转2007-04-26 19:47新手重新系统的概率很高,每次重装系统后都要经 ...

  10. 性能优化系列四:Tomcat优化

    一.Tomcat工作原理 1. TCP的三次握手四次挥手 三次握手: 说明: 类比于A和B打电话: A对B说:你好,我是A,你能听到我说话吗? B对A说:嗯,我能听到你说话 A对B说:好,那我们开始聊 ...