前端analysis | 3w & 1h

《Linux》-定时shell发起http请求

2020-04-19

发起http请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/sh
file=log.txt
echo 'start refresh crontab ....' >> $file
echo $(date "+%Y-%m-%d %H:%M:%S") >> $file //输出每次执行时间
pm2 start spider //启动node 进程管理器
sleep 30
echo '--------------------------------' >> $file
i=1
time=10
prefix='http://xxx.'
while(($i<=6))
do
url=$prefix$i;
echo $url >> $file
curl -X GET $url //curl 发起http请求
sleep $time
echo 'sleep 30s done' >> $file
i=$(($i+1)); //自增
echo '-----------------------------' >> $file
echo $i
done
echo '----------------------'
echo 'stop pm2 spider....' >> $file
pm2 stop spider //停止node 进程管理器
echo 'stoped pm2 spider...'
echo '-----------------------' >> $file

定时配置

  • 编辑当前登录用户的定时任务
    1
    $ crontab -e 
  • 添加当前登录用户定时任务
    1
    15 6 2 1 * /home/melissa/backup.sh
  • 查看当前用户的任务
    1
    crontab -l
  • 移除当前登录用户定时任务
    1
    crontab -r 
  • 等待定时执行

crontab写法介绍

  • 栗子
    1
    2
    3
     15    6    2    1        *            /home/melissa/backup.sh
    | | | | |
    minute hour day month day of week
field allowed values
minute 0-59
hour 0-23
day of month 1-31
month 1-12
day of week 0-7 (0 or 7 is Sunday, or use names;)
  • 空行、tab、空格会被忽略
  • #开头的也会被忽略
  • cron 进程,每分钟检查一次定时任务列表

crontab栗子说明

  • 每个工作日 10:30 P.M 运行
    1
    30 22 * * Mon,Tue,Wed,Thu,Fri /usr/local/bin/backup
  • 每周一9点和18点运行
    1
    0 9,18 * * Mon /home/wendy/script.sh
  • 每天9-18这段时间里每20分钟运行
    1
    */20 09-18 * * * /home/carl/hourly-archive.sh
  • 每月1,15且是周五,那天的4:30运行
    1
    30 4 1,15 * 5 /home/carl/hourly-archive.sh
  • 每间隔1小时运行
    1
    * 0-23/2 * * * /home/carl/hourly-archive.sh
  • 每年1月的周一1点运行
    1
    01 00 * Jan Monday /home/melissa/backup.sh

默认是当前用户,可以指定特定用户的定时任务

1
2
3
4
5
6
7
8
sudo crontab -u charles -e
# 编辑特定用户charles的定时任务

sudo crontab -l -u charles
# 查看特定用户的定时任务

sudo crontab -r -u charles
# 删除特定用户的定时任务

那么在哪里可以定义这些限制呢

  • /etc/cron.allow
    • 在这里的才被允许
  • /etc/cron.deny
    • 不在这里的才被允许
  • /etc/cron.d/
    • 在这里的才被允许
  • 通常直接使用crontab -e 编辑

服务命令

安装

1
yum install crontabs

命令

1
2
3
4
5
crontab -u //设定某个用户的cron服务
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务
crontab -i //打印提示,输入yes等确认信息

生效

1
2
3
4
5
6
7
8
9
10
11
12
13
/sbin/service crond start //启动服务
#or
/bin/systemctl start crond.service

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务
#or
/bin/systemctl restart crond.service

/sbin/service crond reload //重新载入配置

service crond status //查看状态

随机启动

1
2
方法一: 界面启动      ntsysv 
方法二: 加入开机自动启动: chkconfig --level 35 crond on // systemctl enable crond.service

参考文献

使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏