为当前用户创建cron服务
1. 键入 crontab -e 编辑crontab服务文件
例如 文件内容如下:
*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh
/bin/sh /home/admin/jiaoben/buy/deleteFile.sh 这一字段可以设定你要执行的脚本,这里要注意一下bin/sh 是指运行 脚本的命令 后面一段时指脚本存放的路径
2. 查看该用户下的crontab服务是否创建成功, 用 crontab -l 命令
3. 启动crontab服务
一般启动服务用 /sbin/service crond start 若是根用户的cron服务可以用 sudo service crond start, 这里还是要注意 下 不同版本Linux系统启动的服务的命令也不同 ,像我的虚拟机里只需用 sudo service cron restart 即可,若是在根用下直接键入service cron start就能启动服务
4. 查看服务是否已经运行用 ps -ax | grep cron
5. crontab命令
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
7. cron文件语法:
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)
记住几个特殊符号的含义:
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字
字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。
举例如下:
5 * * * * ls 指定每小时的第5分钟执行一次ls命令
30 5 * * * ls 指定每天的 5:30 执行ls命令
30 7 8 * * ls 指定每月8号的7:30分执行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,
以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]
每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50 7 * * * root run-parts /etc/cron.daily [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。
10. 查看调度任务
crontab -l //列出当前的所有调度任务
crontab -l -u jp //列出用户jp的所有调度任务
11. 删除任务调度工作
crontab -r //删除所有任务调度工作 /etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行 /etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本
大家注意”run-parts”这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名
shell短信监控
236,老流处理服务器存储资源监控:df -h。
#!/bin/sh
phone_no=13880021591,15982824650,18080886239,18615704080,15756275361
current_time=$(date +%Y%m%d%H%M)
echo "current_time=${current_time}"
#得到的就是除去百分号的数字
code=`df -h /检查那个磁盘空间 | awk '{print $5 , $6}' | awk -F% '{print $1}'`
db2 connect to dkpi user kpi using kpi123kpi
if [ $code -le 90 ]
then
db2 "insert into sms_reqest(OP_TIME,WHITELIST_FLAG,TEL,SRC_ID,CONTENT,CLIENT)
values(current timestamp,'1','${phone_no}','1008604257','${current_time},磁盘空间使用率过大,请及时处理','10.113.14.236')"
fi
db2 disconnect current
---------------------------------------------------------------------------------------------------------------------------------------------
236,对指定目录,整点判断文件数据,小于10即短信告警。
#!/bin/sh
phone_no=13880021591,15982824650,18080886239,18615704080,15756275361
current_time=$(date +%Y%m%d%H%M)
echo "current_time=${current_time}"
code=`ls -l /data0/user/ocdc/yht/yhtsh/ |grep "^-"|wc -l`
db2 connect to dkpi user kpi using kpi123kpi
if [ $code -lt 10 ]
then
db2 "insert into sms_reqest(OP_TIME,WHITELIST_FLAG,TEL,SRC_ID,CONTENT,CLIENT)
values(current timestamp,'1','${phone_no}','1008604257','${current_time},wenjianshuliangshaoyu10','10.113.14.236')"
fi
db2 disconnect current
---------------------------------------------------------------------------------------------------------------------------------------------
实时处理结果监控(kafka topic监控)[15主机 yht 目录下]
#!/bin/sh
source /data1/hdfs/bigdata_env
source /data1/hive/bigdata_env
#sh /home/hadoop/ai-event/hwkrb.sh
sh /home/hadoop/ai-event/gndata_supervision.sh
db2 connect to bdmmdb user aiapp using IQ9*07b5-u
areaid=`hdfs dfs -du -h /sc_location_data/stream_load | awk '{print $3 , $4}' |sed -s "s:[_/A-Za-z:]::g"`
echo "areaid=${areaid}"
for areaid1 in ${areaid}
do
current_time=$(date +%Y%m%d%H%M)
echo "current_time=${current_time}"
time=`hdfs dfs -ls /sc_location_data/stream_load/tmp_${areaid1} | sed -n '3,3p' | awk '{print $6 , $7}' |sed -s "s:[- \:]::g" `
echo "date=${time}"
db2 "insert into dim.dim_loc_monitoring(NEW_TIME_ID,CITY_ID,XT_TIME_ID,id)values('${current_time}','${areaid1}','${time}',1)"
sleep 10s
done
db2 disconnect current
dim.dim_loc_monitoring监控表228,把数据存到这张表里面
---------------------------------------------------------------------------------------------------------------------------------------------
################从228上面读取数据出来进行判断发送报警短信【10.113.14.249 用户名:ocdc yht/yhtsh下】
#!/bin/sh
phone_no=13880021591,15982824650,18080886239,18615704080,15756275361
for areaid1 in 28 282 283 812 813 816 817 818 825 826 827 830 831 832 833 834 835 836 837 838 839
do
db2 connect to bdmmdb user aiapp using IQ9*07b5-u
##系统当前时间
new_time_id=`db2 "select new_time_id from dim.dim_loc_monitoring where city_id ='${areaid1}'"`
dq_time=`echo $new_time_id | awk '{print $3}'`
echo "dq_time=${dq_time}"
##文件时间
xt_time_id=`db2 "select xt_time_id from dim.dim_loc_monitoring where city_id ='${areaid1}'"`
xt_time=`echo $xt_time_id | awk '{print $3}'`
echo "xt_time=${xt_time}"
date_sum=$[ $dq_time-$xt_time ]
echo "date_sum=${date_sum}"
if [ $date_sum -gt 10 ];
then
echo "-------------------------------------"
db2 connect to dkpi user kpi using kpi123kpi
db2 "insert into sms_reqest(OP_TIME,WHITELIST_FLAG,TEL,SRC_ID,CONTENT,CLIENT)
values(current timestamp,'1','${phone_no}','1008604257','dangqian:${areaid1}dechuxiancuowu','10.113.14.236')"
fi
db2 disconnect current
sleep 10s
done
db2 connect to bdmmdb user aiapp using IQ9*07b5-u
db2 "delete from dim.dim_loc_monitoring where id=1"
db2 disconnect current
---------------------------------------------------------------------------------------------------------------------------------------------