用crontab执行shell把top命令按日期追加到文件 详细图文解说请到本人原创百度经验
http://jingyan.baidu.com/article/3052f5a1daf11197f21f8648.html

解决crontab定时输出top不执行办法

top -n 1不能在 crontab中使用,要加一个参数top -b -n 1

需求:在linux服务器用crontab执行shell基本把top命令结果按日期追加到文件。

常见问题:1.直接执行命令可以正常,放到shell脚本里面执行不行。

2.直接执行shell脚本正常输出,放到crontab后不行。

本文列出crontab和直接执行命令的差别、shell定义环境变量、linux获取当前日期、crontab每分钟执行一次、实时监控是否有输出内容、写入内容和追加内容的区别等相关知识点,并给出自己测试成功的实例和截图。

工具/原料
linux
方法/步骤
1
crontab默认是没有环境变量的,也不能直接使用相对路径
直接在命令行执行 就是在当前的shell环境下执行
脚本执行的时候 会fork一个子进程 所有操作都在子进程进行
crontab执行的shell脚本命令要用绝对路径
例如:/usr/bin/top  -b -d 1 -n 1   >> /usr/mydoc/test.txt
2
shell 中变量的定义:linux shell脚本定义变量采用key=value方式,一行一个,字符串用""双引号,读取采用$key的方式。
例如:NAME="/root/top_"$(date +%Y-%m-%d) 就是定义一个前缀加当前日期的文件名。
3
单独top命令不会自动退出,shell脚本必须要能够自动退出才会些数据到文件里面,所以一定要先单独测试会自动退出的带参数的top命令才行。
例如:输入top -b -d 1 -n 3 >test.txt
表示:每一秒更新一次,一共记录3次 将进程信息写入test.txt文件中
需要执行一次就退出改成/usr/bin/top -b -d 1 -n 1 >test.txt
注:内容写入文件是>,会清空以前的内容的,追加内容是>>
4
创建一个toptest.sh脚本,内容为:
#!/bin/sh
NAME="/root/top_"$(date +%Y-%m-%d)
/usr/bin/top  -b -d 1 -n 1   >> $NAME.txt
给sh脚本执行权限命令:chmod +x toptest.sh
如下图所示:
5
crontab每分钟执行一次的写法:*/1 * * * * /bin/bash /root/sh/toptest.sh
编辑命令是crontab -e,注意命令前面要加上/bin/bash 。
生效后用到文件目录下执行:tail -f top_2014-02-19.txt 可以实时监控是否有输出内容。如果没有输出内容说明脚本有问题需要修改,主要是保证top后面的参数正常,效果如图所示:
END
注意事项
crontab默认是没有环境变量的,也不能直接使用相对路径
单独top命令不会自动退出,shell脚本必须要能够自动退出才会些数据到文件里面
命令前面要加上/bin/bash

用crontab执行shell把top命令按日期追加到文件的更多相关文章

  1. 在Linux终端执行clear或top命令时出现:'xterm': unknown terminal type

    在Linux终端执行clear或top命令时出现:'xterm': unknown terminal type的错误. 例如: [root@localhost phpmyadmin]# clear ' ...

  2. Linux Shell之top命令

    TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中C ...

  3. linux 执行远程linux上的shell脚本或者命令以及scp 上传文件到ftp--免密码登陆

    场景:在linux A 上执行Linux B上的shell脚本和命令 步骤1.设置ssh免登陆 1.SSH无密码登录 # 本地服务器执行(A机器):生成密钥对 ssh-keygen -t dsa -P ...

  4. linux crontab执行shell脚本中包含相对路径的问题

    实例一 test.sh文件 echo `date`>test.log 配置crontab 设置 */1 * * * * sh /data/test.sh 在/data/目录下,未找到test.l ...

  5. 在linux终端执行clear或top命令时出现:'xterm' unknown terminal type的错误

    例如: [root@localhost phpmyadmin]# clear 'xterm': unknown terminal type. 解决办法: 1.临时办法,下次启动失效,需要重新执行 ex ...

  6. crontab执行shell脚本

    */5 * * * * cd /data/**/ && ./*.sh * * * * * /bin/sh /home/*.sh

  7. linux 执行shell脚本的时候,生成的log文件乱码

    脚本执行后,生成的log文件,cat打开没有问题,vim打开就是文字乱码. file1完全没有问题,其他人的file2追加到file中间的时候就出现了这个问题. 因为使用notepad在win7写的, ...

  8. 解决命令行执行shell脚本成功,但crontab执行失败

    实际生产案例 生产机房自建PPTP客户端通过拨号连接到生产机房,但是一旦客户端网络是意外断线再重新拨号 会产生IP冲突,于是写了一个脚本监控PPTP的IP是否有多个(一般冲突以后会生成2个IP) #! ...

  9. paip.执行shell cmd 命令uapi java php python总结

    paip.执行shell cmd 命令uapi java php python总结 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:h ...

随机推荐

  1. yii---对数组进行分页

    很多时候,我们会对多个数据进行分页处理,例如我最近开发的一个功能,系统消息,系统消息的来源是多个表,而且多个表之间的数据没有任何关联,这个时候,需要对多个表进行查询,查询返回的数据进行分页,而且采用的 ...

  2. hdu4614 Vases and Flowers【线段树】【二分】

    Alice is so popular that she can receive many flowers everyday. She has N vases numbered from 0 to N ...

  3. 1.0Tensorflow中出现编译问题的解决方案

    跑简单tf例程的时候遇到这个 sess = tf.Session(),I tensorflow/core/platform/cpu_feature_guard.cc:] Your CPU suppor ...

  4. 为VS定制一个自己的代码生成器 - 自定义工具开发

    自定义工具开发 为VS定制一个自己的代码生成器 如何在Visual Studio中开发自己的代码生成器插件 你必须懂的 T4 模板:深入浅出 Regasm组件注册工具使用方法 Regasm 注册C# ...

  5. CSU 1803 - 2016 - [同余]

    题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1803 给出正整数 n 和 m,统计满足以下条件的正整数对 (a,b) 的数量: 1. ...

  6. hihocoder 1322 - 树结构判定 - [hiho一下161周][模板题/水题]

    题目链接:http://hihocoder.com/problemset/problem/1322 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个包含 N 个顶 ...

  7. 数据恢复:如何恢复Linux中意外删除的Oracle和MySQL数据库

    今天有客户的数据库意外被删除了整个目录中的数据文件,操作系统级别的删除,然而幸运的是这个数据库没有崩溃,仍然处于 open 状态的时候,客户就发现了问题,求助到我们,最终完整地恢复了所有数据文件. 在 ...

  8. Docker基本命令与使用 —— Dockerfile指令与构建(三)

    一.Dockerfile指令上 1.指令格式 # Comment 注释, 以#开头 INSTRUCTION argument 以大写的指令+参数 #First Dockerfile 注释 FROM u ...

  9. Json模块dumps、loads、dump、load函数介绍

    转自:http://blog.csdn.net/mr_evanchen/article/details/77879967 Json模块dumps.loads.dump.load函数介绍 1.json. ...

  10. CentOS关闭防火墙&SELinux

    须知: 防火墙配置文件:/etc/sysconfig/iptables 查看防火墙状态:service iptables status 关闭防火墙:service iptables stop 关闭ip ...