crontab 是运维过程中常用的定时任务执行工具
一般情况下在有新的定时任务要执行时,使用crontab -e ,将打开一个vi编辑界面,配置好后保存退出,但是在自动化运维的过程中往往需要使用shell脚本或命令自动添加定时任务。接下来结束三种(Centos)自动添加的crontab 任务的方法:
编辑 /var/spool/cron/用户名 文件,如:
echo "* * * * * hostname >> /tmp/tmp.txt" >> /var/spool/cron/root
优点:简单
缺点:需要root权限
编辑 /etc/crontab 文件,
echo "* * * * * root hostname >> /tmp/tmp.txt" >> /etc/crontab
需要注意的是,与常用的crontab 有点不同,/etc/crontab 需指定用名。而且该文件定义为系统级定时任务 不建议添加非系统类定时任务,编辑该文件也需要root权限
利用crontab -l 加 crontab file 两个命令实现自动添加
crontab -l > conf && echo "* * * * * hostname >> /tmp/tmp.txt" >> conf && crontab conf && rm -f conf
由于crontab file会覆盖原有定时任务,所以使用 crontab -l 先导出原有任务到临时文件 “conf” 再追加新定时任务
优点:不限用户,任何有crontab权限的用户都能执行
缺点:稍微复杂
echo "* * * * * hostname >> /tmp/tmp.txt" >> /var/spool/cron/root
#hostname >> /tmp/tmp.txt"是
任务
,可以改成你需要的
/var/spool/cron/root是后面的root就是自己的
linux
用户名,往这个文件里面写,也就是往
crontab
-e写,如果是其他用户,就...
crontab
是
运维
过程中常用的
定时
任务
执行工具
一般情况下在有新的
定时
任务
要执行时,
使用
crontab
-e ,将打开一个vi编辑界面,配置好后保存退出,但是在
自动化
运维
的过程中往往需要
使用
shell
脚本
或命令自动
添加
定时
任务
。接下来结束三种(Centos)自动
添加
的
crontab
任务
的方法:
编辑/var/spool/cron/用户名 文件,如:
ech...
crontab
–e //修改
crontab
文件,如果文件不存在会自动创建。
crontab
–l //显示
crontab
文件。
crontab
-r //删除
crontab
文件。
crontab
-ir //删除
crontab
文件前提醒用户。
service crond status //查看
crontab
服务状态
service crond start
FIND_STR="FreeMem"
# 判断匹配函数,匹配函数不为0,则包含给定字符
if [ `grep -c "$FIND_STR" $FIND_FILE` -ne '0' ];then
echo "The File Has FreeMem!"
#
crontab
-r 清除
定时
任务
命令。可用于卸载等操作中
通过
crontab
命令,我们可以在固定的间隔时间执行指定的系统指令或
shell
script
脚本
。时间间隔的单位可以是分钟、小时、日、月、周的任意组合。
这里看一看
crontab
的格式:
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)...
#!/bin/bash
find/root/test/-mtime+30-name"*.log"|xargs-imv{}/root/RecycleBin/;
find/root/RecycleBin/-name"*.log"-execrm-rf{}\;
解读文件中的第一条命令:
fi...
每两个小时重启一次teamviewer,防止外界连不上
控制台执行:
crontab
-e //进入
定时
器编辑页面,
添加
如下命令,control+c !wq 保存
0 */2 * * * teamviewer deamon restart
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
每个域之间
使用
空格或者制表符分隔
计划
任务
就是有(时间)计划地执行(做)
任务
,有计划 包括
定时
执行(在哪些时间点执行
任务
)、按照周期执行(每隔多少时间执行
任务
)。
那么,什么是
任务
呢?就是自己想要干的事情——基于这台Ubuntu及其连接的网络(局域网、Internet),自己想干点什么。
自己想干的事情,受制于所在Ubuntu所安装的软件或命令,这个需要明确。
在Ubun...
crontab
-e 也许有些人用的最多了,简单方便
root用户执行的就会在/var/spool/cron/下面创建root文件
因为网站有需求,我用root执行的
crontab
-e写的php计划
任务
,没有指定用户权限,导致php
脚本
生成的内容是root权限,也导致ftp操作不了,因为ftp那么是压制的web的权限
那么
crontab
-e 指定用户会不会生效呢,毕竟
crontab
-e