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、定时执行清理缓存脚本