糕点网站设计,wordpress无法打开修改域名,wordpress pdf插件,如何保存个人网站Crontab介绍#xff1a; Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中#xff0c;用于设置周期性被执行的指令。该命令从标准输入设备读取指令#xff0c;并将其存放于“crontab”文件中#xff0c;以供之后读取和执行。该词来源于希腊语 chronos(χρ…Crontab介绍 Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中用于设置周期性被执行的指令。该命令从标准输入设备读取指令并将其存放于“crontab”文件中以供之后读取和执行。该词来源于希腊语 chronos(χρ?νο?)原意是时间。通常crontab储存的指令被守护进程激活 crond常常在后台运行每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。当安装完成操作系统之后默认便会启动此任务调度命令。crond 命令每分锺会定期检查是否有要执行的工作如果有要执行的工作便会自动执行该工作。 注意新创建的 cron 任务不会马上执行至少要过 2 分钟后才可以当然你可以重启 cron 来马上执行。 实验目的通过crontab模拟调用实时点击流数据生成脚本模拟实时数据生成支持后续实验
实验方法通过crontabshell脚本模拟实时数据产生。
实验步骤
1.使用yum命令安装Crontab
[lhmaster real-timeData]$ sudo yum install vixie-cron
[lhmaster real-timeData]$ sudo yum install crontabs2.查看Crontab状态
# 查看crond状态
[lhmaster real-timeData]$ service crond status# 或者
[lhmaster real-timeData]$ systemctl status crond# 检查其是否自启 # centos7
[lhmaster real-timeData]$ systemctl is-enabled crond# centos6.x
[lhmaster real-timeData]$ chkconfig --list crond 3.添加定时任务
cd /home/lh/scripts/real-timeData/
mkdir logs
crontab -e# 配置模拟实时数据产生的代码定时运行
1 * * * * /home/lh/scripts/real-timeData/real-time-producer.sh /home/lh/scripts/real-timeData/logs/date %Y%m%d.log4.查看任务列表
[lhmaster real-timeData]$ crontab -l5.Crontab相关命令
1语 法 crontab [-u 用户名称][配置文件] 或 crontab { -l | -r | -e }-u #用户名称 是指设定指定用户名称的定时任务这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话就是表示设定自己的定时任务。-l #列出该用户的定时任务设置。-r #删除该用户的定时任务设置。-e #编辑该用户的定时任务设置。 2命令时间格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟159 每分钟用*或者 */1表示 第2列表示小时1230表示0点 第3列表示日期131 第4列表示月份112 第5列标识号星期060表示星期天 第6列要运行的命令 3一些Crontab定时任务例子 30 21 * * * /usr/local/etc/rc.d/lighttpd restart #每晚的21:30 重启apache 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart #每月1、10、22日的4 : 45重启apache 10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart #每周六、周日的1 : 10重启apache 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart #每天18 : 00至23 : 00之间每隔30分钟重启apache 0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart #每星期六的11 : 00 pm重启apache* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart #晚上11点到早上7点之间每隔一小时重启apache* */1 * * * /usr/local/etc/rc.d/lighttpd restart #每一小时重启apache 0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart #每月的4号与每周一到周三的11点重启apache 0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart #一月一号的4点重启apache */30 * * * * /usr/sbin/ntpdate cn.pool.ntp.org #每半小时同步一下时间 0 */2 * * * /sbin/service httpd restart #每两个小时重启一次apache 50 7 * * * /sbin/service sshd start #每天750开启ssh服务 50 22 * * * /sbin/service sshd stop #每天2250关闭ssh服务 0 0 1,15 * * fsck /home #每月1号和15号检查/home 磁盘 1 * * * * /home/bruce/backup #每小时的第一分执行 /home/bruce/backup这个文件 00 03 * * 1-5 find /home *.xxx -mtime 4 -exec rm {} \; #每周一至周五3点钟在目录/home中查找文件名为*.xxx的文件并删除4天前的文件。 30 6 */10 * * ls #每月的1、11、21、31日是的630执行一次ls命令 6.部分脚本无法执行问题
如果我们使用 crontab 来定时执行脚本无法执行但是如果直接通过命令如./test.sh)又可以正常执行这主要是因为无法读取环境变量的原因。
解决方法
1所有命令需要写成绝对路径形式如: /usr/local/bin/docker。
2在 shell 脚本开头使用以下代码 #!/bin/sh /etc/profile ~/.bash_profile 3在 /etc/crontab 中添加环境变量在可执行命令之前添加命令 . /etc/profile;/bin/sh使得环境变量生效例如 20 03 * * * . /etc/profile;/bin/sh /var/www/wwwroot/test.sh 7.Crontab默认调度任务
cron默认配置了调度任务分别为hourly、daily、weekly、mouthly默认配置文件为/etc/anacrontab
将需要执行的脚本放到相应的目录下即可目录分别为 /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /ect/cron.mouthly 8.注意清理系统用户的邮件日志
每条任务调度执行完毕系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户这样日积月累日志信息会非常大可能会影响系统的正常运行因此将每条任务进行重定向处理非常重要。
例如可以在crontab文件中设置如下形式忽略日志输出 0 */3 * * * /usr/local/apache2/apachectl restart /dev/null 21 “/dev/null 21”表示先将标准输出重定向到/dev/null然后将标准错误重定向到标准输出由于标准输出已经重定向到了/dev/null因此标准错误也会重定向到/dev/null这样日志输出问题就解决了。 9.Crontab日志路径 ll /var/log/cron* #/var/log/cron只会记录是否执行了某些计划的脚本但是具体执行是否正确以及脚本执行过程中的一些信息则linux会每次都发邮件到该用户下。 10.Crontab命令在线验证工具 crontab执行时间计算 - 在线工具 (tool.lu) 定时任务最快为每分钟调度一次因为我们要摸底用户的搜索点击数据以分钟为单位明显达不到要求后期的spark streaming处理是以秒为单位的明显不符合要求需要手动改造为每五秒生成一次数据
11. 改造步骤3添加定时任务
# 配置模拟实时数据产生的代码定时运行
1 * * * * for i in {1..12}; do /home/lh/scripts/real-timeData/real-time-producer.sh /home/lh/scripts/real-timeData/logs/real-time-data.log; sleep 5; done1将1分钟拆分成12等分等同于每5秒执行一次 2执行sh脚本“”表示将输出追加到对应的日志文件中 3sleep 5休眠5秒这样就相当于5秒执行一次 实验结果
查看日志文件如下
[lhmaster logs]$ cat real-time-data.log查看crontab运行日志如下
sudo cat /var/log/cron 实验结论
通过crontabshell脚本可以实现模拟实时数据产生得到每5秒一条数据记录。