Linux 上 curl + crontab 的用处

1、curl的基本用处

curl最基本的用处是查看网页源代码,如下:

  • 查看源代码的同时实现了一次浏览页面

2、crontab的基本用处

crontab可以实现Linux上的定时任务,基本语法如下:

*             *             *             *             *             command

分钟     小时        日           月          星期          执行的命令

0~59    0~23      1~31      1~12      0~6

比如:每分钟输出一下当前时间的定时任务

  1、crontab -e     --编辑当前用户的定时任务

  

  每分钟也可写作:*/1 * * * * command

  2、crontab -l     --列出当前用户的定时任务

  

  3、--查看定时任务执行情况

当前用户定时任务输出在目录/var/spool/mail/下对应的当前用户名文件中,比如当前用户名是dirk,查看当前用户定时任务如下:

3、curl + crontab

写到这里估计你就知道用这两个命令可是做什么事情了吧,用来增+web的visits

  1、编写访问指定URL的脚本

sleep 1:当前进程暂停1秒钟,仿正常访问行径

>/dev/null 2>&1:将标准输出和错误输出都重定向/dev/null,也就是系统“黑洞”

   2、编写定时任务

  2分钟执行一次,是为了防止被禁

  sh /root/cron_sh/csdn_to_top.sh:执行上一步编写的脚本

  3、查看定时任务执行情况

建议使用:cat /var/spool/mail/username |more  以页为单位查看

当文件过大,可以查看最后输出的100行信息:tail -100 /var/spool/mail/username |more

注意:使用了>/dev/null 2>&1后,执行信息不在输出到默认目录,当然你也可以指定输出目录,不建议指定输出目录,当在服务器上不停的执行定时任务,执行的信息累计会变成信息垃圾,还需要定时清理。

4、处理执行脚本的缓存

因为脚本执行的频率非常高,很容易消耗系统的内存,所以要定时清理一下caches

编写脚本如下,下面一一解释

#!/bin/bash

#当可用内存小于500M释放caches

left_mem=`free -m |awk 'NR==2 {print $4}'`
#echo $left_mem
if [ $left_mem -lt 500 ]; then
	sync
	echo 3 > /proc/sys/vm/drop_caches
fi
#将清理的数据进行记录
current_time=`date +"%Y-%m-%d %H:%M:%S"`
echo "time: $current_time    free: $left_mem Mb" >> /root/cron_sh/free_mem.log

free -m 

以Mb为单位显示内存使用情况,如下:

主要信息在第2行,2006是总内存,404是已用内存,1601是剩余内存,cached也就是从磁盘到内存的一个缓存

free -m |awk 'NR==2'

获取内存信息第2行,如下

free -m |awk 'NR==2 {print $4}'

对第2行数据分割后,获取第4个参数,也就是剩余内存的值,赋值给变量left_mem

if [ $left_mem -lt 500 ]; then

...

fi

当剩余内存小于500时,执行

sync

数据同步,以免清楚缓存导致数据丢失

echo 3 > /proc/sys/vm/drop_caches

清除cached缓存

current_time=`date +"%Y-%m-%d %H:%M:%S"`

以下列格式,格式化输出当前时间,赋值给变量current_time

echo "time: $current_time    free: $left_mem Mb" >> /root/cron_sh/free_mem.log

将此时的时间和清理的缓存数据保存到自定义日志文件中,以便统计观察。

5、定时执行清理缓存脚本

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章