linux环境中,如何通过手动创建crontab文件的方式来设置crontab定时调度任务?
需求描述:
之前在创建定时任务的时候,都是通过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定时调度任务?的更多相关文章
- linux环境中通过useradd命令,创建用户的时候指定用户的base-dir
需求说明: 今天一个同事,问了一个这样的问题,在linux环境中,创建用户的时候,默认的是在/home目录下创建一个与用户名相同的家目录, 如何能够将这个/home更换成一个其他的,比如/opt/ap ...
- 她娇羞道“不用这样细致认真的说啊~~”———详细图解在Linux环境中创建运行C程序
她娇羞说,不用这样细致认真的说啊———详细图解在Linux环境中创建运行C程序“不,这是对学习的负责”我认真说到 叮叮叮,停车,让我们看看如何在Linux虚拟机环境中,创建运行C程序 详细图解在Lin ...
- [软件测试]Linux环境中简单清爽的Google Test (GTest)测试环境搭建(初级使用)
本文将介绍单元测试工具google test(GTEST)在linux操作系统中测试环境的搭建方法.本文属于google test使用的基础教程.在linux中使用google test之前,需要对如 ...
- linux环境中通过/dev/urandom设备产生随机密码
需求说明: 今天在调试SVN的时候,需要创建用户的随机密码,想了下,在linux环境中是否能够生成呢,就搜索了下, 然后结合看到的帖子,分析一个可以生成密码的命令,在此记录下. 操作过程: 1.通过/ ...
- linux环境中,多个命令之间,通过&& ||执行,命令之间执行的逻辑是什么?
需求描述: 最近在写一个脚本的时候,要判断一个文件是否存在,有怎么样,没有就创建,这个时候 看到了一个test 结合 || 或者 &&的写法,就查看了下资料记录下是怎么个玩法. 操作过 ...
- linux环境中安装ftp服务
需求说明: 今天项目中有一个新的需求,需要在linux环境中搭建一个ftp服务,在此记录下. 操作过程: 1.通过yum的方式安装ftp服务对应的软件包 [root@testvm01 ~]# yum ...
- linux环境中,查看域名的DNS信息?
需求说明: 今天在linux主机上,要查询一个域名是在哪个DNS上进行解析的,这个域名下面还有哪些的地址 操作过程: 1.linux环境中通过nslookup命令来进行查看 [deployer@CBS ...
- 【事件中心 Azure Event Hub】在Linux环境中(Ubuntu)安装Logstash的简易步骤及配置连接到Event Hub
在文章([事件中心 Azure Event Hub]使用Logstash消费EventHub中的event时遇见的几种异常(TimeoutException, ReceiverDisconnected ...
- (3)ElasticSearch在linux环境中安装与配置head插件
1.简介 ElasticSearch-Head跟Kibana一样也是一个针对ElasticSearch集群操作的API的可视化管理工具,它提供了集群管理.数据可视化.增删改查.查询语句等功能,最重要还 ...
随机推荐
- HTTP1.0/1.1/2.0特性对比_转
转自:HTTP1.0 HTTP1.1 HTTP2.0 主要特性对比 https://segmentfault.com/a/1190000013028798 HTTP1.0 早先1.0的HTTP版本, ...
- OCiOS开发:音频播放器 AVAudioPlayer
简单介绍 AVAudioPlayer音频播放器可以提供简单的音频播放功能.其头文件包括在AVFoudation.framework中. AVAudioPlayer未提供可视化界面,须要通过其提供的播放 ...
- SQLServer 错误: 15404,无法获取有关 Windows NT 组
右击-属性-所有者改成sa 测试一下 右击 --- 作业开始步骤---执行成功
- 【C】——使用creat()函数需要注意的事项
#include<fcntl.h> int creat(const char *pathname, mode_t mode); 若成功则返回为只写打开的文件描述符,若出错则返回-1: 有时 ...
- "No user exists for uid 501"
"No user exists for uid 501" 问题表现:git操作远端失败. iterm2的问题,更改了配置可能导致这个问题,最简单的解决办法,退出客户端后重启.重 ...
- Java设计模式(21)访问模式(Visitor者模式)
Visitor定义:作用于某个对象群中各个对象的操作.它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作. 在Java中,Visitor模式实际上是分离了collection结构中的元 ...
- selenium操作浏览器-窗口切换
package seleniumLearn1; import java.util.Set; import java.util.concurrent.TimeUnit; import org.openq ...
- qualcomm batch 烧录脚本
在烧录android系统候用到了windows的批处理文件,拿出来分析一下,顺便记录一下高通平台烧录系统的命令. @echo off :: @ :不显示后面的命令,就是后面的"echo of ...
- 推荐vue.js、layer.js、axios.js
都是很简单又很实用的东西. vue.js,前端双向绑定框架. layer.js,前端遮罩层框架.(layui的一部分,可单独使用) axios.js,异步请求框架,用起来比jQuery的ajax舒服一 ...
- 【转载】K-NN算法 学习总结
声明:作者:会心一击 出处:http://www.cnblogs.com/lijingchn/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接, ...