Скрипт OS X для отправки электронной почты при создании нового файла - PullRequest
0 голосов
/ 27 октября 2010

Как я могу отслеживать каталог и отправлять электронное письмо при создании нового файла?

В настоящее время у меня ежедневно запускается скрипт, который использует find для поиска всех файлов вкаталог с датой последнего изменения , более новой, чем пустой отметка времени файла:

#!/bin/bash
folderToWatch="/Path/to/files"
files=files.$$
find $folderToWatch/* -newer timestamp -print > $files
if [ -s "$files" ]
then
# SEND THE EMAIL
touch timestamp

К сожалению, при отправке файлов также отправляются электронные письма.Я знаю, что дата создания не хранится в Unix, но эта информация доступна в Finder, так что я могу каким-то образом изменить свой сценарий, чтобы использовать эту дату информации вместо последнего изменения ?

Ответы [ 3 ]

1 голос
/ 27 октября 2010

У команды Snow Leopard find есть основной элемент -Bnewer, который сравнивает «время рождения» файла (также называемое временем создания инода) с временем изменения файла временной метки, поэтому он должен делать в значительной степени то, что вы хотите. Я не уверен, когда именно эта функция была добавлена; он есть в 10.6.4, а не в 10.4.11, и у меня нет машины 10.5, на которую удобно смотреть. Если вам нужно, чтобы это работало в более ранней версии, вы можете использовать stat, чтобы подделать его, что-то вроде этого:

find "$folderToWatch"/* -newer timestamp -print | \
    while IFS="" read file; do
        if [[ $(stat -f %B "$file") > $(stat -f %m timestamp) ]]; then
            printf "%s\n" "$file"
        fi
    done >"$files"
1 голос
/ 27 октября 2010

Вы можете сохранить манифест:

new_manifest=/tmp/new_manifest.$$
(cd $folderToWatch; find .) > $new_manifest
diff manifest $new_manifest | perl -ne 'print "$1\n" if m{^> \./(.*)}' > $files
mv -f $new_manifest manifest
0 голосов
/ 27 октября 2010

Вас может заинтересовать время изменения.

if test `find "text.txt" -cmin +120`
then
    echo old enough
fi

См .: Как проверить в bash, был ли файл создан более x раз назад

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...