需求描述:

  之前在创建定时任务的时候,都是通过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. WPF中的命令简介

    使用Prism委托命令Demo: WPF委托命令DelegateCommand的传参方式 在WPF中使用命令的步骤很简单 1.创建命令 2.绑定命令 3.设置命令源 4.设置命令目标 WPF中命令的核 ...

  2. Adventures in Functions

    速度还行,两天看完一章,就是有细节没去扣.书上的大部分知识点和代码都看了,这个还是可以的. 今天继续来学习函数的高级特性,要涉及到以下的主题. 内联函数(inline function) 引用变量(r ...

  3. UI设计,使用感知分层技术

    页面设计时使用感知分层技术:不同的元素用不同的颜色表示,让它看起来是位于独立的一层之上.人们在无意识的状态下,只会感知到自己关注的元素,将其他元素排除在意识之外.

  4. 百度地图Api进阶教程-用户自定义数据(标记和搜索)7.html

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  5. 客户端通过HTTP协议与服务端交换数据

        客户端(包括浏览器)通过HTTP协议与服务端交换数据的描述 发起请求 header 键值对中的key大小写不敏感 Accept: application/json Content-Type: ...

  6. USB学习笔记连载(十一):CY7C68013A的启动方式-EEPROM

       上述的应用笔记中有介绍FX2LP的启动选项,主要包括I2C启动和USB启动. 说白了I2C启动需要使用外部的EEPROM,USB启动,只是使用上位机控制软件将配置程序FX2LP中,不用EEPRO ...

  7. IDEA 创建git 分支 拉取分支

        此时只是在本地创建好了分支,修改源代码后add,commit将本地分支提交到远程仓库          分支已创建,其它成员此时就可以从git拉分支

  8. 【Python】python3-list列表引用

    print(names) #列出列表的内容 print(names[3]) #访问列表中第4个值 print(names[1:3]) #访问列表中从第2个到第3个的值 print(names[-1]) ...

  9. Java如何监视线程的状态?

    在Java编程中,如何监视线程的状态? 以下示例演示如何通过扩展Thread类并使用currentThread.getName()方法来监视线程的状态. package com.yiibai; cla ...

  10. e783. 监听对JList中项双击和三击

    // Create a list String[] items = {"A", "B", "C", "D"}; JLis ...