首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >crontab错误(没有安装MTA ),但我使用>/dev/null 2>&1

crontab错误(没有安装MTA ),但我使用>/dev/null 2>&1
EN

Unix & Linux用户
提问于 2014-08-16 15:26:24
回答 3查看 37.1K关注 0票数 6

我是linux用户的新手

我试着运行crontab来备份我的数据库与流浪用户。

代码语言:javascript
复制
* * * * * /usr/bin/mysqldump -h localhost -u root -p root mydb | gzip > /var/backup/all/database_`date +%Y-%m-%d`.sql.gz >/dev/null 2>&1

当crontab运行时,文件夹中没有备份文件(我的备份/all有权限方案755)。

这是来自/var/log/syslog的错误

代码语言:javascript
复制
Aug 16 11:55:01 precise64 CRON[2213]: (vagrant) CMD (/usr/bin/mysqldump -h localhost -u root -p root mydb | gzip > /var/backup/all/database_`date +%Y-%m-%d`.sql.gz >/dev/null 2>&1)
Aug 16 11:55:01 precise64 CRON[2212]: (CRON) info (No MTA installed, discarding output)

所以我觉得

  1. 因为权限被拒绝,crontab无法创建备份文件。
  2. 它是关于我没有安装MTA,但我使用>/dev/null 2>&1禁用crontab发送电子邮件,为什么它出错?
EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2014-08-16 18:20:16

当然,错误在于您没有实现并激活一个mailer (sendmail、postfix等)。

尽管如此,您的另一个问题是,>/dev/null 2>&1只对最后一个命令(在本例中为gzip )应用/关联。因此,您的mysqldump必须有某种类型的输出到STDERR。

我认为你想做的正确方法是:

代码语言:javascript
复制
 * * * * *  (command | command ) >/dev/null 2>&1
票数 11
EN

Unix & Linux用户

发布于 2016-05-21 03:30:48

你可以说:

代码语言:javascript
复制
MAILTO=""

在你的crontab文件的开始,这将阻止它试图发送电子邮件。

票数 6
EN

Unix & Linux用户

发布于 2014-08-16 21:12:33

如果运行crontab命令的用户是vagrant,并且输出被写入的目录为root所拥有,并且具有755权限,则不能将其写入。

sudo chown vagrant /var/backup/all

可能会解决这个问题。

要检查这是否是问题所在,请尝试将其写入/tmp中的文件。

但是还有另一个问题:类似于

mysqldump mydb | gzip > database.sql.gz >/dev/null 2>&1

将数据库转储写入database.sql.gz/dev/null

2>&1将错误消息复制到standart输出,这意味着它还将错误消息写入database.sql.gz。它只在压缩数据之间写入错误信息文本,这样压缩的文件就会被破坏。注意,当测试时,它可能工作得很好--因为只有当某些东西被写入标准错误流时,问题才会发生。到stderr的输出可能只是一个警告,而其他的一切都正常工作。

我假设您打算将压缩的数据库转储写入sql.gz文件,将错误写入/dev/null文件。为此,只需将输出流分开,不要将错误流复制到输出流。然后把它们指向这样的文件:

代码语言:javascript
复制
mysqldump mydb | gzip > /var/backup/all/database_`date +%Y-%m-%d`.sql.gz 2>/dev/null

错误消息“(未安装MTA,丢弃输出)”是cron,告诉您它无法向您发送错误输出。这最终不会成为问题,因为您将错误重定向到/dev/null无论如何,将没有什么可发送的。但我怀疑,目前有错误信息要发送,这应该可以证实我的上述发现。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/150546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档