Исполнительная ошибка формата Cron.daily

Использование Ubuntu 16. У меня есть следующий сценарий в cron.daily папка. Однако я получаю ошибку по электронной почте уведомление:

/etc/cron.daily/clamscan_daily:
run-parts: failed to exec /etc/cron.daily/clamscan_daily: Exec format error
run-parts: /etc/cron.daily/clamscan_daily exited with return code 1

Сценарий

  #!/bin/bash
    LOGFILE="/var/log/clamav/clamav-$(date +'%Y-%m-%d').log";
    EMAIL_MSG="Please see the log file attached.";
    EMAIL_FROM="no-reply@domain.com";
    EMAIL_TO="admin@domain.com";
    DIRTOSCAN="/var/www";

    for S in ${DIRTOSCAN}; do
     DIRSIZE=$(du -sh "$S" 2>/dev/null | cut -f1);

     echo "Starting a daily scan of "$S" directory.
     Amount of data to be scanned is "$DIRSIZE".";

     clamscan -ri "$S" >> "$LOGFILE";

     # get the value of "Infected lines"
     MALWARE=$(tail "$LOGFILE"|grep Infected|cut -d" " -f3);

     # if the value is not equal to zero, send an email with the log file attached
     if [ "$MALWARE" -ne "0" ];then
     # using heirloom-mailx below
     echo "$EMAIL_MSG"|mail -a "$LOGFILE" -s "Malware Found" -r "$EMAIL_FROM" "$EMAIL_TO";
     fi
    done

    exit 0

Я не могу выяснить проблему здесь. Какие-либо идеи?

Я попробовал runnig это на терминале и добрался:

./clamscan_daily
Starting a daily scan of /var/www directory.
 Amount of data to be scanned is 427M.
./clamscan_daily: line 15: /var/log/clamav/clamav-2017-10-25.log: Permission denied
tail: cannot open '/var/log/clamav/clamav-2017-10-25.log' for reading: No such file or directory
./clamscan_daily: line 21: [: : integer expression expected

ОБНОВЛЕНИЕ 2:

Когда я работаю ls -l - Я вижу номер 2 для этого сценария только. Это могло быть проблемой?

ls -l
total 56
-rwxr-xr-x 1 root root  376 Mar 31  2016 apport
-rwxr-xr-x 1 root root 1474 Oct 31  2016 apt-compat
-rwxr-xr-x 1 root root  355 May 22  2012 bsdmainutils
-rwxr-xr-x 2 root root  751 Oct  4  2016 clamscan_daily
-rwxr-xr-x 1 root root 1597 Nov 26  2015 dpkg
-rwxr-xr-x 1 root root  372 May  6  2015 logrotate

ОБНОВЛЕНИЕ № 3

ls -l /var/log/clamav
total 388
-rw-r--r-- 1 root   root   233 Sep 15  2016 clamav-2016-09-15.log
-rw-r--r-- 1 root   root   234 Sep 16  2016 clamav-2016-09-16.log
-rw-r--r-- 1 root   root   234 Sep 17  2016 clamav-2016-09-17.log
-rw-r--r-- 1 root   root   234 Sep 18  2016 clamav-2016-09-18.log
-rw-r--r-- 1 root   root   233 Sep 19  2016 clamav-2016-09-19.log
-rw-r--r-- 1 root   root   234 Sep 20  2016 clamav-2016-09-20.log
-rw-r--r-- 1 root   root   233 Sep 21  2016 clamav-2016-09-21.log
-rw-r--r-- 1 root   root   233 Sep 22  2016 clamav-2016-09-22.log
-rw-r--r-- 1 root   root   233 Sep 23  2016 clamav-2016-09-23.log
-rw-r--r-- 1 root   root   232 Sep 24  2016 clamav-2016-09-24.log
-rw-r--r-- 1 root   root   232 Sep 25  2016 clamav-2016-09-25.log
-rw-r--r-- 1 root   root   232 Sep 26  2016 clamav-2016-09-26.log
-rw-r--r-- 1 root   root   233 Sep 27  2016 clamav-2016-09-27.log
-rw-r--r-- 1 root   root   233 Sep 28  2016 clamav-2016-09-28.log
-rw-r--r-- 1 root   root   232 Sep 29  2016 clamav-2016-09-29.log
-rw-r--r-- 1 root   root   234 Sep 30  2016 clamav-2016-09-30.log
-rw-r--r-- 1 root   root   234 Oct  1  2016 clamav-2016-10-01.log
-rw-r--r-- 1 root   root   234 Oct  2  2016 clamav-2016-10-02.log
-rw-r--r-- 1 root   root   234 Oct  3  2016 clamav-2016-10-03.log
-rw-r--r-- 1 root   root   234 Oct  4  2016 clamav-2016-10-04.log
-rw-r--r-- 1 root   root   238 Oct 25 15:06 clamav-2017-10-25.log
-rw-r----- 1 clamav adm   5688 Oct 25 15:27 clamav.log
-rw-r----- 1 clamav adm  13196 Oct 22 06:25 clamav.log.1
-rw-r----- 1 clamav adm   2001 Aug 21 06:25 clamav.log.10.gz
-rw-r----- 1 clamav adm    896 Aug 13 06:25 clamav.log.11.gz
-rw-r----- 1 clamav adm   1894 Aug  7 06:25 clamav.log.12.gz
-rw-r----- 1 clamav adm   1359 Oct 16 06:25 clamav.log.2.gz
-rw-r----- 1 clamav adm   1153 Oct  8 06:25 clamav.log.3.gz
-rw-r----- 1 clamav adm   1869 Oct  2 06:25 clamav.log.4.gz
-rw-r----- 1 clamav adm    898 Sep 24 06:25 clamav.log.5.gz
-rw-r----- 1 clamav adm   1336 Sep 18 06:25 clamav.log.6.gz
-rw-r----- 1 clamav adm   1710 Sep 10 06:25 clamav.log.7.gz
-rw-r----- 1 clamav adm   1373 Sep  4 06:25 clamav.log.8.gz
-rw-r----- 1 clamav adm   1794 Aug 27 06:25 clamav.log.9.gz
-rw-r----- 1 clamav adm  46135 Oct 25 15:26 freshclam.log
-rw-r----- 1 clamav adm  83017 Oct 22 06:25 freshclam.log.1
-rw-r----- 1 clamav adm   6219 Aug 21 06:25 freshclam.log.10.gz
-rw-r----- 1 clamav adm   4737 Aug 13 06:25 freshclam.log.11.gz
-rw-r----- 1 clamav adm   6389 Aug  7 06:25 freshclam.log.12.gz
-rw-r----- 1 clamav adm   6382 Oct 16 06:25 freshclam.log.2.gz
-rw-r----- 1 clamav adm   5228 Oct  8 06:25 freshclam.log.3.gz
-rw-r----- 1 clamav adm   6415 Oct  2 06:25 freshclam.log.4.gz
-rw-r----- 1 clamav adm   4580 Sep 24 06:25 freshclam.log.5.gz
-rw-r----- 1 clamav adm   6596 Sep 18 06:25 freshclam.log.6.gz
-rw-r----- 1 clamav adm   5320 Sep 10 06:25 freshclam.log.7.gz
-rw-r----- 1 clamav adm   6921 Sep  4 06:25 freshclam.log.8.gz
-rw-r----- 1 clamav adm  15812 Aug 27 06:25 freshclam.log.9.gz
2
задан 25 October 2017 в 17:54

2 ответа

Это может походить на мелочь, но удостовериться что #! символы являются первыми двумя символами сценария (без предыдущего пробела). Проиллюстрировать:

# cat /etc/cron.hourly/shebang-test
  #!/bin/bash
  echo "Hello from $0" >> /tmp/cron.out
#
# run-parts --report /etc/cron.hourly
/etc/cron.hourly/shebang-test:
run-parts: failed to exec /etc/cron.hourly/shebang-test: Exec format error
run-parts: /etc/cron.hourly/shebang-test exited with return code 1
#

(сбои); но после удаления ведущего пробела

# sed -i 's/^ *//' /etc/cron.hourly/shebang-test
#
# cat /etc/cron.hourly/shebang-test
#!/bin/bash
echo "Hello from $0" >> /tmp/cron.out

выполнения успешно

# run-parts --report /etc/cron.hourly
# cat /tmp/cron.out
Hello from /etc/cron.hourly/shebang-test
#
6
ответ дан 2 December 2019 в 01:42

Крон выполняет его как корень? Удостоверьтесь, что это делает.

Прямо после формата в течение времени в Вашем crontab, можно добавить пользователя.

Например, yourscript будет работать как корень в 6:00 каждый день, если Вы добавите это к crontab:

0 6 * * * root /pathtoscript/yourscript

0
ответ дан 2 December 2019 в 01:42

Другие вопросы по тегам:

Похожие вопросы: