hostnameInCron.patch

Matthew Schumacher matt.s at aptalaska.net
Mon May 24 15:19:46 UTC 2021


I've been using this one for a while and it's stable.  It puts the 
hostname in emails sent from cron, otherwise it's hard to figure out 
which host the email came from.


diff -ruN busybox-1.27.2.orig/miscutils/crond.c 
busybox-1.27.2/miscutils/crond.c
--- busybox-1.27.2.orig/miscutils/crond.c    2017-07-18 
09:14:50.000000000 -0800
+++ busybox-1.27.2/miscutils/crond.c    2017-12-28 11:25:45.412623185 -0900
@@ -667,6 +667,7 @@
  static void start_one_job(const char *user, CronLine *line)
  {
      char mailFile[128];
+    char *hostname;
      int mailFd = -1;

      line->cl_pid = 0;
@@ -676,10 +677,11 @@
          /* Open mail file (owner is root so nobody can screw with it) */
          snprintf(mailFile, sizeof(mailFile), "%s/cron.%s.%d", 
CRON_DIR, user, getpid());
          mailFd = open(mailFile, O_CREAT | O_TRUNC | O_WRONLY | O_EXCL 
| O_APPEND, 0600);
+        hostname = safe_gethostname();

          if (mailFd >= 0) {
-            fdprintf(mailFd, "To: %s\nSubject: cron: %s\n\n", 
line->cl_mailto,
-                line->cl_cmd);
+            fdprintf(mailFd, "To: %s\nSubject: %s cron: %s\n\n", 
line->cl_mailto,
+                hostname, line->cl_cmd);
              line->cl_empty_mail_size = lseek(mailFd, 0, SEEK_CUR);
          } else {
              bb_error_msg("can't create mail file %s for user %s, "


More information about the busybox mailing list