需求描述:

  早上设置了ntp客户端的定时任务,发现不断的有You have new mail in /var/spool/mail/root这种提示.

  然后,就看了具体的文件,由于ntpdate是每分钟执行,执行的结果,都输出到mail邮件里面了.所以,担心

  这个给撑爆了,就预先放置吧,看看如何在crontab不进行标准或错误输出.

操作过程:

1.查看定时任务,和mail信息

[root@testvm02 mail]# crontab -l
*/ * * * * /usr/sbin/ntpdate 192.168.53.22
[root@testvm02 mail]# crontab -l #一分钟之后,再次执行就报了mail的提示.
*/1 * * * * /usr/sbin/ntpdate 192.168.53.22
You have new mail in /var/spool/mail/root

2.查看这个mail中到底是什么

[root@testvm02 mail]# ls -l /var/spool/mail/root
-rw------- root mail Aug : /var/spool/mail/root #最近刚有新的信息输入
You have new mail in /var/spool/mail/root
[root@testvm02 mail]# more /var/spool/mail/root #查看文件的内容就是发送邮件的信息和执行命令的输出.就是发送邮件的信息,把你执行的命令结果,发送出去.
From root@testvm02.localdomain Tue Aug ::
Return-Path: <root@testvm02.localdomain>
X-Original-To: root
Delivered-To: root@testvm02.localdomain
Received: by testvm02.localdomain (Postfix, from userid )
id A4E68440BC; Tue, Aug :: + (CST)
From: root@testvm02.localdomain (Cron Daemon)
To: root@testvm02.localdomain
Subject: Cron <root@testvm02> ntpdate 192.168.53.22
Content-Type: text/plain; charset=UTF-
Auto-Submitted: auto-generated
X-Cron-Env: <LANG=en_US.UTF->
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <.A4E68440BC@testvm02.localdomain>
Date: Tue, Aug :: + (CST) /bin/sh: ntpdate: command not found From root@testvm02.localdomain Tue Aug ::
Return-Path: <root@testvm02.localdomain>
X-Original-To: root
Delivered-To: root@testvm02.localdomain
Received: by testvm02.localdomain (Postfix, from userid )
id A83D7440BD; Tue, Aug :: + (CST)
From: root@testvm02.localdomain (Cron Daemon)
To: root@testvm02.localdomain
Subject: Cron <root@testvm02> ntpdate 192.168.53.22
Content-Type: text/plain; charset=UTF-
Auto-Submitted: auto-generated
X-Cron-Env: <LANG=en_US.UTF->

3.通过重定向将命令执行的错误和标准输出都屏蔽掉

[root@testvm02 mail]# crontab -e
crontab: installing new crontab
[root@testvm02 mail]# crontab -l
*/ * * * * /usr/sbin/ntpdate 192.168.53.22 >/dev/null 2>&1

备注:这样执行就没有标准和错误输出了.

4.再次查看文件是否有增长

[root@testvm02 mail]# ls -l root
-rw------- root mail Aug : root
[root@testvm02 mail]# ls -l root
-rw------- root mail Aug : root
[root@testvm02 mail]# ls -l root
-rw------- root mail Aug : root
[root@testvm02 mail]# date
Wed Aug :: CST

备注:该文件中的内容没有增加,以后也不会出现不断增加,可能会撑爆磁盘的情况了.

另:在其他的博客中设置echo "unset MAILCHECK">>/etc/profile 可以不检查mail目录中的内容,但是只是不检查发送邮件,但是root的内容还在增加.

5.彻底关闭cron进程发送邮件的方式

  5.1crontab文件中,开头增加MAILTO="",表示没有收件人

[root@testvm02 mail]# crontab -l
MAILTO=""
*/ * * * * /usr/sbin/ntpdate 192.168.53.22

  5.2crontab定时任务增加输出重定向

*/ * * * * /usr/sbin/ntpdate 192.168.53.22 >/dev/null >&

备注:这样的话/var/spool/mail中root文件就不会在增加了,否则即使是unset MAILCHECK不提示有邮件了,但是这个文件还是在增加.

文档创建时间:2018年8月8日11:10:02

linux避免crontab的执行输出将磁盘目录占满?用户的mail占用大的空间?的更多相关文章

  1. Linux中crontab无法执行java程序的问题

    Linux中crontab无法执行java程序的问题 jdk环境变量配置问题:可以用全路径来解决: 竟然是kill -9之后,后面的脚本都不运行,这个还没有找到原因啊: 即便是系统级别的 ls 命令, ...

  2. linux设置crontab定时执行脚本备份mysql

    前言:mysqldump备份数据库命令 mysqldump -u root -psztx@2018 fengliuxiaosan > /dbbackup/fengliuxiaosan.sql## ...

  3. 如何使用Linux的Crontab定时执行PHP脚本的方法

    我们的PHP程序有时候需要定时执行,我们可以使用ignore_user_abort函数或是在页面放置js让用户帮我们实现.但这两种方法都不太可靠,不稳定.我们可以借助Linux的Crontab工具来稳 ...

  4. 如何使用Linux的Crontab定时执行PHP脚本的方法[转载]

    首先说说cron,它是一个linux下的定时执行工具.根用户以外的用户可以使用 crontab 工具来配置 cron 任务.所有用户定义的 crontab 都被保存在/var/spool/cron 目 ...

  5. linux定时任务crontab怎样执行root命令

    在/var/spool/cron/文件夹下放置了所有定时任务文件, 1.运行crontab -u $用户名 -e会显示$用户的所有定时任务: 2.运行sudo crontab -e会显示root用户所 ...

  6. Linux使用crontab定时执行Python脚本清理日志

    Linux中,周期执行的任务一般由crond这个守护进程来处理.cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.crond的配置文件称为"crontab", ...

  7. linux下crontab定时执行本地脚本和定时访问指定url

    https://my.oschina.net/u/2487410/blog/683308 使用linux curl命令讲解:http://www.linuxdiyf.com/linux/2800.ht ...

  8. 使用Linux的Crontab定时执行PHP脚本

    0 */6 * * * /home/kdb/php/bin/php /home/kdb/apache/htdocs/lklkdbplatform/kdb_release/Crontab/index.p ...

  9. linux下crontab定时执行shell脚本调用oracle 存储过程

    问题:脚本内调用存储过程,脚本直接执行没问题,使用crontab 执行脚本存储过程未执行 原因:缺少oracle环境变量 解决:在shell脚本里添加oracle的环境变量 #!/bin/sh PAT ...

随机推荐

  1. js读取本地txt文件中的json数据

    list.txt内容 [ {"optionKey":"1", "optionValue":"Canon in D"}, ...

  2. Mongo分片集群脚本

    bash大法好啊,一键玩mongo. 我的mongo版本是:MongoDB shell version v4.0.2 这里准备为大家献上Mongo创建分片和可复制集的脚本,以及在部署的时候踩的坑. 分 ...

  3. ubuntu 安装 mkfs.ubifs

    ubi 文件系统的制作需要 mkfs.ubifs 工具 但是又没有直接的 sudo apt-get install , 只能通过以下方式 sudo apt-get install mtd-utils

  4. STM32F10x_ADC三通道DMA连续转换(3通道、软件单次触发)

    Ⅰ.概述 上一篇文章讲述的内容是:三通道逐次转换(单次.单通道软件触发),也就是说3条通道要三次软件触发才能完成转换,而且是通过软件读取转换数值. 本文讲述三通道DMA连续转换(3通道.软件单次触发) ...

  5. 【转】android学习日记01--综述

    转自:http://www.cnblogs.com/aiguozhe/p/3541941.html 一.总体框架 先上一张google提供官方的Android框架图: Android系统架构由5部分组 ...

  6. symfony手动触发修饰html

    symfony会修饰一些标签,如input[type=file],input[type=checkbox],input[type=radio]等 有时html是页面生成后插入的,需要手动使symfon ...

  7. JS运动 - 无缝滚动和缓动动画

    JS运动 - 无缝滚动和缓动动画 无缝滚动原理:首先先复制两张图片(第一张和第二张)放到最后面;ul绝对定位,如果ul的left值大于等于4张图片的宽度,就应该快速复原为0. html <!DO ...

  8. 虚拟机或真机调试React Native, 开启开发者菜单

    虚拟机调试呼出开发者菜单,只需按下Ctrl+M组合键即可: 对于真机,通常摇晃手机可呼出,也可以在cmd输入adb shell input keyevent 82呼出菜单.如果还是不行,可能是系统管家 ...

  9. JavaScript实现继承的混合方式

    实现JavaScript继承的最简单的方式是call方法(或者apply方法)及原型链方法,但这两种方法都有缺陷,而其混合体就是很好的继承实现方式.下面举例说明: function Animal(ag ...

  10. 【转】jmeter 如何将上一个请求的结果作为下一个请求的参数——使用正则提取器

    1.简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如 ...