crontab写定时脚本

linux操作系统环境:Ubuntu 16.04 

目录

           " (CRON) info (No MTA installed, discarding output)"错误的解决办法

【建议:.sh 这个SHELL脚本里面添加 > 直接定向 !!】

  crontab使用切记:【cmd部分不能直接加一个sh文件,需要先cd YOURSHDIR && ./YOURDH.sh】 

【补充:linux的标准输入、标准输出、错误输出和黑洞】

【补充:>> 和 > 的区别】


写了一个test脚本,准备来定时备份我的mySQL数据库,然后使用crontab这个命令来实现,

脚本内容:

执行效果: 

定时脚本内容:(执行命令  crontab -e  :查看当前用户的计划任务  ;-l :是列出当前用户下可用的定时脚本) 

【问题抛出】测试的时候一直都没法每个一分钟就执行脚本打印出来~

【问题探究】

1.检查crontab这个服务有没有开启,没有crontab的朋友们就需要先安装再使用,

检查crontab这个服务的开启状态:service cron status

如果没有开启就开启:service cron start

【注意】修改了定时脚本之后,无需使用 service cron restart 重启服务!!

2.检查定时脚本的日志:

$ tail /var/log/syslog

或者

$ service cron status

发现会有个这样的警告: (CRON) info (No MTA installed, discarding output)

报错的主要原因是没有配置邮件服务器.

" (CRON) info (No MTA installed, discarding output)"错误的解决办法

有两种情况会导致这个现象.

(1)命令中含有shell指令
当你运行的任务中包含shell命令,就会报错.例如下面的第二个任务:

* * * * * date >log

* * * * * ./test.sh >`date`.log (错误)

可以通过安装邮件服务器解决该问题. (平时不怎么用到,所以我选择不安装邮件服务器,就通过重新定向)
或者是把该shell命令放到一个文件中,执行该文件.然后重定向到null文件.

(2)执行任务过程中会往屏幕输出内容

当你执行的是个脚本文件时,你可以把文件的输出重定向到某个文件中.例如: 
* * * * * cd /home/kai/Destop && ./test.sh > temp.log 
或者不需要保留执行的输出,则重定向到null中: 
* * * * * cd /home/kai/Destop && ./test.sh > /dev/null 2>&1

【实例】

test.sh的执行命令:

#!/bin/bash
filename="test_"`date +'%Y%M%D%H%M%S'`".sql"
echo $filename 

成功例子:

* * * * * cd /home/kai/Desktop/ && ./test.sh >temp.log

【建议:.sh 这个SHELL脚本里面添加 > 直接定向 !!】

crontab使用切记:【cmd部分不能直接加一个sh文件,需要先cd YOURSHDIR && ./YOURDH.sh】 

(看到有些教程可以直接写.sh文件就可以执行,不过我尝试了就是不行的) 

【补充:linux的标准输入、标准输出、错误输出和黑洞】

标准输入0    从键盘获得输入 /proc/self/fd/0 
标准输出1    输出到屏幕(即控制台) /proc/self/fd/1 
错误输出2    输出到屏幕(即控制台) /proc/self/fd/2 

/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞” 

1、2>/dev/null意思就是把错误输出到“黑洞” 

2、>/dev/null 2>&1默认情况是1,也就是等同于1>/dev/null 2>&1。意思就是把标准输出重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞” 

3、2>&1 >/dev/null意思就是把错误输出2重定向到标准出书1,也就是屏幕,标准输出进了“黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕 
关于这里”&”的作用,我们可以这么理解2>/dev/null重定向到文件,那么2>&1,这里如果去掉了&就是把错误输出给了文件1了,用了&是表明1是标准输出

【补充:>> 和 > 的区别】

>> 是追加内容
> 是覆盖原有内容

猜你喜欢

转载自blog.csdn.net/weixin_41501825/article/details/81584664