学习文件格式化处理、linux例行性工作

需求:需要监控负责的所有服务器的磁盘空间情况,创建空间监控机制,对磁盘空间使用量超过一定比例的服务器进行短信报警提示。
作为一个定时任务,一般需要放在root权限的crontab下。
现在因为对linux定时任务还不熟悉,因此需要熟悉一下别的monitor代码。
crontab -l 列出某个用户cron服务的详细内容
user's crontab这个表示是每个用户都有自己的crontab。所以需要全局执行的话,必须定制root用户的crontab。非全局的,就根据各个用户自己的crontab来执行,在执行编辑crontab操作时,我们需要设置编辑工具,否则默认是crontab的编辑。
crontab的任务配置说明:
*      *         *    *     *        *
分钟  小时   日   月   星期  命令
00 03 * * * sh /root/refreshBondGoods/run.sh>>log.log
3点执行脚本run.sh,并将执行日志自动输出到log.log文件中。
crontab服务是被定制在系统后台运行的cron进程中,所以用户无法查看到cron的进程状态,设置开机启动cron进程,命令如下:
chkconfig --add crond 加入到系统的服务列表中。
* 任何时刻都接受
, 代表分割时段
-代表一段时间范围内
/n每隔n单位间隔
linux下任务计划(at cron batch)的区别
at 在未来的某个时间点定期执行一次任务
batch 使用方法与at相同,不同的是batch不需要指定时间,因为它会在系统负载比较低的时候执行(平均负载小于0.8的时候)
cron是一个周期性执行的命令,另外cron是一个服务。
cron计划任务里的命令有时候可能不会执行,因为这个文件里的环境变量path跟系统的path不太一样。cron的path默认值为/sbin:/bin:/usr/sbin:/usr/bin所以这就造成很多命令不能使用。解决的方法有两个:一是可以自己设定PATH环境变量;而是可以用命令的绝对路径。
cron是为服务器设计的命令,所以它默认系统会24小时开机。但是如果在笔记本上装linux操作系统不可能不关机。如果在计划的时间点关机了,那么这个计划任务就不执行了。为了弥补这个缺陷,就有了anacron命令。
启动anacron服务:/sbin/service anacron start
linux下查看磁盘使用率、文件
文件夹大小
df 可以查看一级文件夹大小、使用比例、档案系统、以及挂入点
du 可以查看文件及文件夹大小

在很多系统中,用户目录下都有cron.daily之类的文件夹,里面的可执行文件每天都会被执行一次。也就是说如果像添加一个每天都被执行的任务的话,在目录下放置该任务的脚本即可。使用很方便,原理是run-parts命令。
run-parts命令位于/usr/bin/run-parts,内容是简单的一个shell脚本,就是遍历目标文件夹,执行第一层目录下的可执行权限的文件。
/dev/null来清空一些日志文件
可以把/dev/null/看做是黑洞,它非常等价于一个只写文件,所有写法它的内容都会永远消失。而尝试从它那儿读取内容则什么都读不到。然而,/dev/null对命令行和脚本都非常有用。

1>/dev/null 2>&1的含义
shell中可能经常能看到:1>/dev/null 2>&1
命令的结果可以通过%>的形式来定义输出。
/dev/null代表空设备文件。
1>/dev/null首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,就是不显示任何信息。
2>&1接着,标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误也重定向到设备文件。
命令后加&的意思是放到后台执行。默认情况下,进程是前台进程,这时就把shell占据了,无法进行其他操作。对于没有交互的进程,很多时候都希望将其放到后台启动,可以在启动参数的时候加上&。

在df -h的列表里取到硬盘占用率大于80%的挂载目录。
df -h |grep -v 'Capacity'|grep -v '[/]$'|grep -v '/dev$'|awk '{a=+$5}a>=80{printf(\"%s\t\",$6)}'
解释一下。grep -v 'Capacity'——将标题行屏蔽掉。
grep -v '[/]$'——无视根目录(根目录的特点是每行的末尾是单独的/)
awk '{a=+$5}a>=80{printf()}~~
a=+$5的作用是去掉占用率后的百分号。
printf这句可以将$6以\t为间隔符进行输出。这个举动的目的很简单,是为了explode函数将以上的输出结果转成数组,方便输出。
php的exec函数可以执行以上linux命令语句。
最后crontab -e的格式是(每隔一小时执行一次)
4 */1 * * * (php解释器的位置)(我的php程序的位置)(去向 ,/dev/null ?)
问题解决。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值