虚拟环境中Django项目的crontab问题:“已发送1字节的输出;但获得状态0x004b,#012”

2024-09-30 01:32:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个django项目,有一个任务,每周向所有用户发送电子邮件通知。以下是方法:-在

1.创建了用于发送每周电子邮件通知的管理命令。在

2.编辑crontab如下:

$ sudo crontab -e
#For testing purposes I have edited as below
 1 * * * * pathto/virtualenv pathto/manage.py notify_email

3.重启crontab

^{pr2}$

4.为了检查日志状态,我尝试了以下方法

$tail -n 10 /var/log/syslog

Mar 19 13:36:08 praneeth-Latitude-E6400 cron[15293]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
Mar 19 13:37:01 praneeth-Latitude-E6400 CRON[15364]: (praneeth) CMD (/home/praneeth/wru-pam/venv/bin/python3.4 /home/praneeth/wru-pam/pam_site/manage.py notify_about_changes)
Mar 19 13:37:02 praneeth-Latitude-E6400 postfix/sendmail[15367]: fatal: open /etc/postfix/main.cf: No such file or directory
Mar 19 13:37:02 praneeth-Latitude-E6400 CRON[15363]: (praneeth) MAIL (mailed 1 byte of output; but got status 0x004b, #012)
Mar 19 13:38:01 praneeth-Latitude-E6400 CRON[15416]: (praneeth) CMD (/home/praneeth/wru-pam/venv/bin/python3.4 /home/praneeth/wru-pam/pam_site/manage.py notify_about_changes)
Mar 19 13:38:01 praneeth-Latitude-E6400 postfix/sendmail[15418]: fatal: open /etc/postfix/main.cf: No such file or directory
Mar 19 13:38:01 praneeth-Latitude-E6400 CRON[15415]: (praneeth) MAIL (mailed 1 byte of output; but got status 0x004b, #012)
Mar 19 13:39:01 praneeth-Latitude-E6400 CRON[15457]: (praneeth) CMD (/home/praneeth/wru-pam/venv/bin/python3.4 /home/praneeth/wru-pam/pam_site/manage.py notify_about_changes)
Mar 19 13:39:01 praneeth-Latitude-E6400 postfix/sendmail[15459]: fatal: open /etc/postfix/main.cf: No such file or directory
Mar 19 13:39:01 praneeth-Latitude-E6400 CRON[15456]: (praneeth) MAIL (mailed 1 byte of output; but got status 0x004b, #012)

5.我已经通过下面的forum来寻找在终端中查看邮件的解决方案,当我向下面这样的邮件执行sudo操作时,发现了1到43个条目

$sudo mail
N  1 Cron Daemon        Mon Mar 16 14:21   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N  2 Cron Daemon        Mon Mar 16 14:22   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N  3 Cron Daemon        Mon Mar 16 14:23   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N  4 Cron Daemon        Mon Mar 16 14:24   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N  5 Cron Daemon        Mon Mar 16 14:25   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N  6 Cron Daemon        Mon Mar 16 14:26   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N  7 Cron Daemon        Mon Mar 16 14:27   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N  8 Cron Daemon        Mon Mar 16 14:28   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N  9 Cron Daemon        Mon Mar 16 14:29   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 10 Cron Daemon        Mon Mar 16 14:30   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 11 Cron Daemon        Mon Mar 16 14:31   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 12 Cron Daemon        Mon Mar 16 14:32   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 13 Cron Daemon        Mon Mar 16 14:33   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 14 Cron Daemon        Mon Mar 16 14:34   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 15 Cron Daemon        Mon Mar 16 14:35   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 16 Cron Daemon        Mon Mar 16 14:36   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 17 Cron Daemon        Mon Mar 16 14:37   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 18 Cron Daemon        Mon Mar 16 14:38   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 19 Cron Daemon        Mon Mar 16 14:39   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 20 Cron Daemon        Mon Mar 16 14:40   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 21 Cron Daemon        Mon Mar 16 14:41   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 22 Cron Daemon        Mon Mar 16 14:42   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 23 Cron Daemon        Mon Mar 16 14:43   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 24 Cron Daemon        Mon Mar 16 14:44   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 25 Cron Daemon        Mon Mar 16 14:45   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 26 Cron Daemon        Mon Mar 16 14:46   22/1194  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 27 Cron Daemon        Mon Mar 16 14:47   54/3457  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 28 Cron Daemon        Mon Mar 16 14:48   54/3457  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 29 Cron Daemon        Mon Mar 16 14:49   54/3457  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 30 Cron Daemon        Mon Mar 16 14:50   54/3457  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 31 Cron Daemon        Mon Mar 16 14:51   54/3457  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 32 Cron Daemon        Mon Mar 16 14:52   54/3457  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 33 Cron Daemon        Mon Mar 16 14:53   54/3457  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 34 Cron Daemon        Mon Mar 16 14:54   54/3457  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 35 Cron Daemon        Mon Mar 16 14:55   54/3457  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 36 Cron Daemon        Mon Mar 16 14:56   54/3457  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 37 Cron Daemon        Mon Mar 16 14:57   54/3457  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 38 Cron Daemon        Mon Mar 16 14:58   54/3457  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 39 Cron Daemon        Mon Mar 16 14:59   21/1323  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 40 Cron Daemon        Mon Mar 16 15:00   21/1323  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 41 Cron Daemon        Mon Mar 16 15:01   21/1323  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 42 Cron Daemon        Mon Mar 16 15:02   21/1323  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet
 N 43 Cron Daemon        Mon Mar 16 15:03   21/1323  Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneet

例如,如果我键入1,我得到的消息是下图:- 信息9:

From root@praneeth-Latitude-E6400.corp.ad.wrs.com  Mon Mar 16 14:29:02 2015
Return-Path: <root@praneeth-Latitude-E6400.corp.ad.wrs.com>
Date: Mon, 16 Mar 2015 14:29:01 -0400
From: root@praneeth-Latitude-E6400.corp.ad.wrs.com (Cron Daemon)
To: root@praneeth-Latitude-E6400.corp.ad.wrs.com
Subject: Cron <root@praneeth-Latitude-E6400> cd /home/praneeth/wru-pam/pam_site && /home/praneeth/wru-pam/venv/bin/python3.4 manage.py notify_about_changes
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Status: R

发送每周电子邮件通知的解决方案的另一面“我可以通过kronos、django celery和rabbitmq broker轻松地发送自动电子邮件通知。但我希望使用crontab使任务尽可能简单。”

我希望能提前得到指导谢谢


Tags: homesitecdrootmardaemoncronpam
2条回答

也许this可以帮助您解决cron抛出的后缀错误:

一个可能的解决方案是重新配置postfix。可以使用以下命令重新配置:

sudo dpkg-reconfigure postfix

将显示用户界面。在每个屏幕上,选择以下值:

  • 好的
  • Internet站点
  • 没有
  • 在mail.example.com在
  • 在mail.example.com, localhost.localdomain,本地主机
  • 没有
  • 127.0.0.0/8192.168.0/24
  • 是的
  • 0
  • +在
  • 全部

您可能需要编辑/etc/postfix/main.conf来更新邮件主机名。在

最后,通过电子邮件发送三个步骤来解决Cronim标签页的编辑问题

$*/1 * * * *  /home/praneeth/wru-pam/venv/bin/python3.4 /home/praneeth/wru-pam/pam_site/manage.py notify_about_changes  settings=project.settings.development

我还发现步骤4和步骤5不是检查crontab日志状态的正确方法。在

相关问题 更多 >

    热门问题