执行:crontab -e
或者是编辑:/var/spool/cron/root 文件(root为当前登录用户对应的文件)
*/30 * * * * /home/monitor.sh ~ ~
为30分钟执行一次,monitor.sh内容为:
date >>/home/monitor.log free >>/home/monitor.log uptime >>/home/monitor.log iostat >>/home/monitor.log
结果在monitor.log中:
Thu Jan 8 09:00:01 CST 2015 total used free shared buffers cached Mem: 32831320 2839336 29991984 0 1121596 548744 -/+ buffers/cache: 1168996 31662324 Swap: 16383992 0 16383992 09:00:01 up 16:29, 2 users, load average: 0.49, 0.41, 0.28 Linux 2.6.32-279.el6.x86_64 (master) 01/08/15 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.30 0.00 0.39 1.07 0.00 98.25 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1.22 26.48 9.89 1572226 587244 sdg 0.04 2.97 0.29 176522 17048 sdi 0.03 2.95 0.28 175010 16896 sdj 0.03 2.98 0.29 177098 17000 sdh 0.03 2.95 0.29 175082 16992 sdb 0.04 2.64 0.20 156634 12120 sdd 0.03 2.93 0.29 174266 17024 sde 0.03 2.98 0.29 176730 16984 sdf 0.03 2.98 0.29 177250 17024 sdc 0.04 3.02 0.30 179570 17976 Thu Jan 8 09:30:01 CST 2015 total used free shared buffers cached Mem: 32831320 2847472 29983848 0 1123416 548828 -/+ buffers/cache: 1175228 31656092 Swap: 16383992 0 16383992 09:30:01 up 16:59, 4 users, load average: 0.07, 0.08, 0.09 Linux 2.6.32-279.el6.x86_64 (master) 01/08/15 _x86_64_ (8 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.29 0.00 0.38 1.08 0.00 98.25 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 1.20 25.70 9.78 1572226 598172 sdg 0.03 2.89 0.28 176522 17048 sdi 0.03 2.86 0.28 175010 16896 sdj 0.03 2.89 0.28 177098 17000 sdh 0.03 2.86 0.28 175082 16992 sdb 0.04 2.56 0.20 156634 12120 sdd 0.03 2.85 0.28 174266 17024 sde 0.03 2.89 0.28 176730 16984 sdf 0.03 2.90 0.28 177250 17024 sdc 0.03 2.93 0.29 179570 17976
结果生成的文件名字上有个?号的解决办法:
经过排查,知道因为我系用记事本写sh脚本,换行时和linux的换行符唔同,导致linux编译唔到笔记本换行符
用UE这个编辑器就可以编辑linux命令。选择文件,转换,在里面选doc-unix就行了!
修正版的 monitor-updated.sh:
#! /bin/bash #Purpose: Save System status DATE=$(date +%Y%m%d) SYSTEM_TIME=$(date '+%Y-%m-%d %T') FILE_NAME="Monitor""$DATE"".log" date >>/home/$FILE_NAME free >>/home/$FILE_NAME uptime >>/home/$FILE_NAME iostat >>/home/$FILE_NAME echo "==================EXECUTE Clear..."$SYSTEM_TIME"==================" >>/home/$FILE_NAME echo 1 > /proc/sys/vm/drop_caches echo "" >>/home/$FILE_NAME FILE_NAME="Monitor""$DATE"".log" date >>/home/$FILE_NAME free >>/home/$FILE_NAME uptime >>/home/$FILE_NAME iostat >>/home/$FILE_NAME echo "==================Done Clear. "$SYSTEM_TIME"======================" >>/home/$FILE_NAME echo "" >>/home/$FILE_NAME
重新载入配置 :
/sbin/service crond reload
重启服务:
/sbin/service crond restart