Сценарий для отправки почты, если не было никакой записи в файле журнала для определенного количества времени

Принятие Ваших файлов оба отсортировано:

join -j1 -t\| entity.txt reference.txt

Если они не отсортированы, сортируют их:

sort entity.txt -o entity-sorted.txt
sort reference.txt -o reference-sorted.txt
join -j1 -t\| entity-sorted.txt reference-sorted.txt
3
25.11.2018, 16:54
1 ответ

Немного замысловатый, но это работает:

#!/bin/bash

now=`date +%s`
max_age=10800 # 3 hours in seconds

if [ $(($now - `stat -c '%Y' $1`)) -gt $max_age ]; then
    echo "file hasn't been updated in $max_age seconds"
fi

Назовите сценарий с именем файла как единственный аргумент.

2
27.01.2020, 21:28
  • 1
    я мог бы пропускать что-то, но где это посылает электронное письмо? –  n0pe 14.03.2013, 12:41
  • 2
    При выполнении этого как задания крона Вы получите электронную почту каждый раз, когда она генерирует вывод. С другой стороны, выполните его вручную и добавьте что-то как | mail -s 'Oh no!' you@your.domain к echo строка. –  Flup 14.03.2013, 12:44
  • 3
    Привет Max, спасибо за Вашу справку.... Но тем не менее я не могу выполнить сценарий успешно... Ошибка, которую я получаю, является printf: '(': –  Abdul 14.03.2013, 13:13
  • 4
    @Flup символа недопустимого формата, ahh право. Мое плохое. –  n0pe 14.03.2013, 13:19
  • 5
    @Abdul Удостоверяется, что у Вас есть кавычки точно, как они выше. Также удостоверьтесь, что Вы запускаете скрипт с bash. –  Flup 14.03.2013, 13:23

Теги

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