逻辑:(简单粗暴--首次写sh脚本)
- 获取当前进程号 (ps -ef |grep elasticsearch |grep -w 'elasticsearch'|grep -v 'grep'|awk '{print $2}')
- 停止当前服务 (kill -9 ${ES_ID})
- 重启服务 (${ES_HOME}/bin/elasticsearch -d)
#!/bin/bash
###
#su:登录用户。
#es:部署Elasticsearch用户,避免root用户而无法启动。
#c:c参数后跟具体命令。
#d:Elasticsearch作为守护线程后台启动。
#p:指定线程ID文件,需要新建。
export ES_HOME=/home/soft/elasticsearch-5.2.2
ES_ID=`ps -ef |grep elasticsearch |grep -w 'elasticsearch'|grep -v 'grep'|awk '{print $2}'`
# 这里判断ES进程是否存在
if [[ $ES_ID ]];then
`kill -9 ${ES_ID}`
fi
su - es -c "${ES_HOME}/bin/elasticsearch -d"
crontab:
vi /etc/crontab
crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有
- * 取值范围内的所有数字
- / 每过多少个数字
- - 从X到Z
- ,散列数字
1:每1分钟执行一次myCommand
* * * * * myCommand
2:每小时的第3和第15分钟执行
3,15 * * * * myCommand
3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand
5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
6:每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
7:每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
8:每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
9:每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
10:每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
11:每一小时重启smb
0 */1 * * * /etc/init.d/smb restart
12:晚上11点到早上7点之间,每隔一小时重启smb
0 23-7/1 * * * /etc/init.d/smb restart