4

У меня есть Synology NAS с DSM. Я создал скрипт bash, чтобы проверить, присутствует ли определенный файл в определенной папке. Сценарий выполняется по расписанию и возвращает результат мне по электронной почте.

Проблема в том, что я получаю слишком много писем, просто говоря, что скрипт работает нормально.

Планировщик задач DSM позволяет отправлять электронную почту только в том случае, если скрипт завершается ненормально.

Мой вопрос: как я могу заставить скрипт завершиться ненормально?

Я бы сделал это, чтобы получить электронное письмо, если файл, который я ищу, не существует.

2 ответа2

4

Вы можете использовать exit 1 для завершения сценария.

Код выхода 0 означает, что все прошло нормально, все остальные указывают на какую-то ошибку.

2

Вы можете использовать код завершения, если файл отсутствует:

#!/bin/bash
file="/foo/bar"
if [ -e "$file" ]
then
exit 0
else
exit 1
fi

[ -e ] это оператор, который проверяет, существует ли "$file" . Это эквивалентно test -e $file но подходит для if-else-fi.
Смотрите man test, если вам нужно больше операторов.

Редактировать:
Чтобы уточнить, есть и другие коды выхода, которые вы можете использовать для удобства, если у вас есть другое предупреждение по электронной почте, когда скрипт «взрывается» или по какой-то причине не выполняется.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .