用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. ELK之写入MySQL数据库

    安装MySQL5.6 创建数据库并且授权 create database elk character set utf8 collate utf8_bin; grant all on elk.* to ...

  2. python读取文件行号和内容的便捷方法

    处理数据时候,需要得到数据所在和行号,使用enumerate时便捷的方法: file = open('file.txt','r') for (num,value) in enumerate(file) ...

  3. hadoop第一部分-安装、测试

    一.hadoop安装(本地模式及伪分布式安装) hadoop历史版本下载网站:http://archive.apache.org/dist/运行模式:    本地模式    yarn模式 hadoop ...

  4. 详解回调函数——以JS为例解读异步、回调和EventLoop

      回调,是非常基本的概念,尤其在现今NodeJS诞生与蓬勃发展中变得更加被人们重视.很多朋友学NodeJS,学很久一直摸不着门道,觉得最后在用Express写Web程序,有这样的感觉只能说明没有学懂 ...

  5. oracle( 0 )事务

    一.并发引起的问题 脏读:能读取未提交的数据 不可重复读:T1事务读取数据后,T2事务执行更新操作,使T1无法再现前一次读取的结果.分三种情况: 1.值不同 2.少了记录 3.多了记录 幻象读(后两种 ...

  6. javaScript高级教程(七)正则表达式中括号三种常见作用

    括号用来将子表达式标记起来,以区别于其他表达式 比如很多的命令行程序都提供帮助命令,键入 h 和键入 help 的意义是一样的,那么就会有这样的表达式: h(elp)? 字符h之后的elp可有可无这里 ...

  7. docker的安装,使用

    1:安装:https://blog.csdn.net/yx_222/article/details/80936757 sudo apt-get install docker.io 2:  使用dock ...

  8. java读取resource目录下的配置文件

    java读取resource目录下的配置文件 1:配置resource目录 下的文件 host: 127.0.0.1 port: 9300 2:读取    / 代表resource目录 InputSt ...

  9. [vue]组件的创建(componet)和销毁(keep-alive缓存)和父子dom同步nextTick

    思路: 1. 组件的好处,重用性 2. 组件对的slot用法 3. 子如何调用父的数据 4. 子如何触发父的方法执行 5. 父如何触发子的方法执行 6. 如何创建组件和销毁自建--如何缓存避免每次切换 ...

  10. modelform和modelserializer

    modelform modelform比form强悍很多