解读crontab脚本错误日志和正确的输出写入到文件
作者:o王o 发布时间:2023-10-16 04:36:12
标签:crontab,输出,写入,文件
crontab脚本错误日志和正确的输出写入到文件
如果crontab不重定向输出,并且crontab所执行的命令有输出内容的话,是一件非常危险的事情。
因为该输出内容会以邮件的形式发送给用户,内容存储在邮件文件
/var/spool/mail/$user
如果命令执行比较频繁(如每分钟一次),或者命令输出内容较多,会使这个邮件文件不断追加内容,文件越来越大。
而邮件文件一般存放在根分区,根分区一般相对较小,所以会造成根分区写满而无法登录服务器。
不输出内容
*/5 * * * * /root/XXXX.sh &>/dev/null 2>&1
将正确和错误日志都输出到 /tmp/load.log
*/1 * * * * /root/XXXX.sh > /tmp/load.log 2>&1 &
只输出正确日志到 /tmp/load.log
*/1 * * * * /root/XXXX.sh > /tmp/load.log & 等同于 */1 * * * * /root/XXXX.sh 1>/tmp/load.log &
只输出错误日志到 /tmp/load.log
*/1 * * * * /root/XXXX.sh 2> /tmp/load.log &
名词解释
在shell中,每个进程都和三个系统文件相关联:标准输入stdin,标准输出stdout和标准错误stderr,三个系统文件的文件描述符分别为0,1和2。所以这里2>&1的意思就是将标准错误也输出到标准输出当中。
> 就相当于 1> 也就是重定向标准输出,不包括标准错误。
通过2>&1,就将标准错误重定向到标准输出了(stderr已作为stdout的副本),那么再使用>重定向就会将标准输出和标准错误信息一同重定向了。
如果只想重定向标准错误到文件中,则可以使用2> file。
crontab重定向错误日志 加上时间
在开发中,我们避免不了写crontab脚本来异步执行一些东西,一般设置crontab用下面的方法
*/1 * * * * commond > /tmp/t.log 2>&1
后面的 2>&1 代表把标准错误输出指向标准输出,意思是当commond异常退出时,把异常退出时的日志也写到 /tmp/t.log 下面,这时记录的日志是没有时间信息的,就是说日志里的数据没有办法知道是什么时候打印出来的。
下面通过一个shell来解决这件事,代码如下
#!/bin/bash
if [ $# -gt 1 ]; then
istring=''
#去掉回车
date=`date | tr -s ["\n"]`
for (( i = 2; i <= $#; i++ ))
do
string=$string" "${!i}
done
c=$date": "$string
echo "" >> $1
echo $c >> $1
fi
把上面的代码放到根目录下,保存为 datecrontalog.sh
然后在crontab -e用下面的脚本代替
*/1 * * * * commond 2>&1 | xargs $HOME/datecrontalog.sh /tmp/t.log
来源:https://blog.csdn.net/u012129607/article/details/80418149
0
投稿
猜你喜欢
- 本文介绍了20条简单有趣的技巧,让你告别以往费时费力的搜索习惯。从现在起,Tips你的“搜”能力吧!对上百万人而言,Google是一个每天都
- 网站文件目录列表类似下图这样的显示方式,这样的效果,默认情况下是可以显示的,新购买的主机默认都可以把网站内的文件以列表的形式显示出来:索引管
- 八、Courier-IMAPInstallA.先在普通用户下#./configure-without-authpwd-without-aut
- 1.挂载光盘[root@localhost ~]# mount /dev/cdrom /media/cdrom/mount: /dev/sr
- 今天向往常一样打开我的雅虎邮箱,看到一个标题是《phpwinds与贵站建议长期合作关系!》,phpwinds?是那个著名的php论坛吗?不过
- 本文大部分参考网上其他教程,是实际操作后回过头来的一些总结,希望可以对正在部署项目的你有所帮助。基本环境:Centos7、tomcat8、j
- 大概一年之前也出了一个sandbox效应作用,但那时的sandbox效应跟现在是完全相反. 之前的sandbox效应,笔者也建立验证了其真实
- DDOS攻击是现在最常见的一种黑客攻击方式,下面就给大家简单介绍一下DDOS的七种攻击方式。1.Synflood: 该攻击以多个随机的源主机
- 北京时间11月18日消息,据国外媒体报道,科技博客Techcrunch作者MG·斯格勒(MG Siegler)周二撰文
- 站长们辛辛苦苦做站,除了一小部分为了兴趣之外,我想大部分是为了赚钱吧,网赚已经成为互联网的热点之一了,越来越多的网民加入到站长的行列中来,想
- 一、简介rsync 是一个常用的 Linux 应用程序,用于文件同步。它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不
- 1. AdSense 收入 = 广告展示次数 x 点击率 x 点击单价 x 智能定价因素(Smart Price)2. 广告展示次数基于你的
- 据国外媒体报道,谷歌日本公司宣布,将从今日起把“街景”检索服务的对象区域扩大至新潟、冈山、广岛、福冈和熊本县的部分地区。谷歌于08年8月以东
- Windows远程接入服务器允许VPN客户进行身份识别并且透明地连接到内部网络,就像直接连接到网络一样。这能够使用户以安全的方式进行远程工作
- 下面教给Godaddy用户电子邮件转发的设置步骤:第一、登陆AccountManger.第二、在MyProducts部分,点击Email/E
- 本报记者 雷中辉 北京报道“我们还没有接到实施细则的通知,具体怎么办还不清楚。”7月22日,北京市工商行政管理局大厅,当记者询问电子商务网店
- Google Adsense最新的动作挺频繁的。继取消地区的Adsense推介费用、广告换成大字体、产品名称改成中文名。现在推出了一个可能会
- 辛辛苦苦用一个月把流量升到3万,空间受不了,空间提供商说要服务器网站才能正常运转,否则空间经常会无法打开,而租个服务器最少要3000元,对于
- Linux免密码远程登录的实例如何通过一台Linux ssh远程其他linux服务器时,不要输入密码,可以自动登入。提高远程效率,不用记忆各
- 1. 介绍本文主要介绍域名(DNS)的一些机制及实现方法,下面我们就具体看一下它的情况。1.1. 域名的历史产生域名的的根本动机在于管理方便