Bash рукописный шрифт not working properly from crontab

гve some scripts that run perfect if you run them from в терминал, but одиннадцать you add them to crontab it's like the bash doesn't execute properly and doesn't продолжите with the first IF statement and the рукописный шрифт looks to stop.

#!/bin/bash

## File: opt_files_backup.sh
## Author: Raul Sanchez
## Last update: 09/12/2015
## Description:

## Includes the configuration file for the FTP connection
## Available variables (FTP): $ftp_user, $ftp_pass, $ftp_server, $ftp_source_directory, $ftp_target_directory
## Available variables (mail): $mail_recipients
## Available variables (Logging): $log_files
source config.sh

## Creates a tar.gz backup with the format opt_files_YYYYmmdd.tar.gz
if tar czfP /opt/backup-scripts/src/files/opt_files-`date +%Y%m%d%H%M`.tar.gz /opt --exclude='/opt/backup-scripts';
then
echo -e "`date` - Files Backup OK" >> $log_files
## Remove files older than 7 days
if find /opt/backup-scripts/src/files/*.tar.gz -mtime +7 -exec rm {} \;
then
    ##------ Connect to remote server and synchronize ------##
            ## ftp::ssl-allow is false by default on /root/.lftprc
    if lftp -e "mirror --reverse --delete --verbose $ftp_source_directory $ftp_target_directory; exit" -u $ftp_user,$ftp_pass $ftp_server;
            then
        echo -e "`date` - Files Backup Mirror Transfer OK" >> $log_files
                ##------ Send email notification to Sys Admin ------##
            echo "The task completed successfully at `date`" | mail -e -s "CRONTAB task #2 OPT Files Mirror" $mail_recipients
    else
        echo -e "`date` - Files Backup Mirror Transfer KO" >> $log_files
        exit 1
    fi
fi
else
echo -e "`date` - Files Backup Mirror Backup KO" >> $log_files
##------ Send email notification failure to Sys Admin ------##
echo "The task didn't completed at `date`, something went wrong. Please check $log_files for more information." | mail -e -s "CRONTAB task #2 OPT Files Mirror Failed!"  $mail_recipients
exit 1
fi

Эксперт Иве said, this рукописный шрифт works perfectly if you run it from в терминал, but it doesn't with crontab. The cronjob for this рукописный шрифт is:

0   7,10,13,16  *   *   1-5 /opt/backup-scripts/scripts/opt_files_backup.sh

гve changed the SHELL in / и т.д. / crontab from SHELL =/bin/sh to/bin/bash and still doesn't work.

Could anyone help я to find what's going wrong with my рукописный шрифт and crontab?

Regards.

2
задан 10 December 2015 в 02:31

1 ответ

При записи scrpit для крона существуют определенные вещи, которые необходимо помнить:

  1. Никогда не предполагают, что это работает от какого-то конкретного места. Или вручную изменитесь на предопределенное местоположение (CD) с одной из Ваших первых операций или всегда используйте абсолютные пути для все . Это включает Ваш "источник config.sh" строка - где это - config.sh файл...?
  2. Это не может иметь той же переменной окружения PATH как тогда, когда Вы выполняете его вручную. При ссылке на что-нибудь, что не находится в стандартных системных двоичных местоположениях (/мусорное ведро/usr/bin) тогда, необходимо будет или вручную определить другую переменную ПУТИ или снова использовать полные абсолютные пути для команд. Это даже включает/sbin и/usr/sbin - некоторые системы не имеют этого в ПУТИ по умолчанию для некорневых пользователей.

Для отладки удостоверяются, что переменная MAILTO установлена в crontab так, чтобы это знало, куда отправить любые сообщения об ошибке в. Можно также добавить "-x" к hashbang строке для показа всех команд на stdout, поскольку они выполняются - который крон должен тогда отправить Вам по почте.

2
ответ дан 2 December 2019 в 03:50

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

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