用crontab执行shell把top命令按日期追加到文件
用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命令按日期追加到文件的更多相关文章
- 在Linux终端执行clear或top命令时出现:'xterm': unknown terminal type
在Linux终端执行clear或top命令时出现:'xterm': unknown terminal type的错误. 例如: [root@localhost phpmyadmin]# clear ' ...
- Linux Shell之top命令
TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中C ...
- linux 执行远程linux上的shell脚本或者命令以及scp 上传文件到ftp--免密码登陆
场景:在linux A 上执行Linux B上的shell脚本和命令 步骤1.设置ssh免登陆 1.SSH无密码登录 # 本地服务器执行(A机器):生成密钥对 ssh-keygen -t dsa -P ...
- linux crontab执行shell脚本中包含相对路径的问题
实例一 test.sh文件 echo `date`>test.log 配置crontab 设置 */1 * * * * sh /data/test.sh 在/data/目录下,未找到test.l ...
- 在linux终端执行clear或top命令时出现:'xterm' unknown terminal type的错误
例如: [root@localhost phpmyadmin]# clear 'xterm': unknown terminal type. 解决办法: 1.临时办法,下次启动失效,需要重新执行 ex ...
- crontab执行shell脚本
*/5 * * * * cd /data/**/ && ./*.sh * * * * * /bin/sh /home/*.sh
- linux 执行shell脚本的时候,生成的log文件乱码
脚本执行后,生成的log文件,cat打开没有问题,vim打开就是文字乱码. file1完全没有问题,其他人的file2追加到file中间的时候就出现了这个问题. 因为使用notepad在win7写的, ...
- 解决命令行执行shell脚本成功,但crontab执行失败
实际生产案例 生产机房自建PPTP客户端通过拨号连接到生产机房,但是一旦客户端网络是意外断线再重新拨号 会产生IP冲突,于是写了一个脚本监控PPTP的IP是否有多个(一般冲突以后会生成2个IP) #! ...
- paip.执行shell cmd 命令uapi java php python总结
paip.执行shell cmd 命令uapi java php python总结 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:h ...
随机推荐
- yii---对数组进行分页
很多时候,我们会对多个数据进行分页处理,例如我最近开发的一个功能,系统消息,系统消息的来源是多个表,而且多个表之间的数据没有任何关联,这个时候,需要对多个表进行查询,查询返回的数据进行分页,而且采用的 ...
- hdu4614 Vases and Flowers【线段树】【二分】
Alice is so popular that she can receive many flowers everyday. She has N vases numbered from 0 to N ...
- 1.0Tensorflow中出现编译问题的解决方案
跑简单tf例程的时候遇到这个 sess = tf.Session(),I tensorflow/core/platform/cpu_feature_guard.cc:] Your CPU suppor ...
- 为VS定制一个自己的代码生成器 - 自定义工具开发
自定义工具开发 为VS定制一个自己的代码生成器 如何在Visual Studio中开发自己的代码生成器插件 你必须懂的 T4 模板:深入浅出 Regasm组件注册工具使用方法 Regasm 注册C# ...
- CSU 1803 - 2016 - [同余]
题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1803 给出正整数 n 和 m,统计满足以下条件的正整数对 (a,b) 的数量: 1. ...
- hihocoder 1322 - 树结构判定 - [hiho一下161周][模板题/水题]
题目链接:http://hihocoder.com/problemset/problem/1322 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个包含 N 个顶 ...
- 数据恢复:如何恢复Linux中意外删除的Oracle和MySQL数据库
今天有客户的数据库意外被删除了整个目录中的数据文件,操作系统级别的删除,然而幸运的是这个数据库没有崩溃,仍然处于 open 状态的时候,客户就发现了问题,求助到我们,最终完整地恢复了所有数据文件. 在 ...
- Docker基本命令与使用 —— Dockerfile指令与构建(三)
一.Dockerfile指令上 1.指令格式 # Comment 注释, 以#开头 INSTRUCTION argument 以大写的指令+参数 #First Dockerfile 注释 FROM u ...
- Json模块dumps、loads、dump、load函数介绍
转自:http://blog.csdn.net/mr_evanchen/article/details/77879967 Json模块dumps.loads.dump.load函数介绍 1.json. ...
- CentOS关闭防火墙&SELinux
须知: 防火墙配置文件:/etc/sysconfig/iptables 查看防火墙状态:service iptables status 关闭防火墙:service iptables stop 关闭ip ...