Unix 11i v2 Сценарий для обнаружения новых файлов в рамках каталога

Играть с этим трех в одном на OS X 10.9.5:

Sudo LSOF | grep \ IPv | Сортировать ; Чисто ; sudo lsof -u; Чисто ; Sudo Netstat -a

0
15.07.2014, 15:16
2 ответа
[

]Здравствуйте, я перепрыгнул, чтобы кто-нибудь с лучшими навыками мог ответить. В HP-UX есть довольно старый инструментарий System V, так что у вас не будет последних инструментов GNU. [

] [

]Позиционная оболочка HP-UX, которая []/usr/bin/sh [] очень близка к []ksh93 []. Таким образом, вы можете сравнить возраст двух файлов с [][[ file1 -nt file2 ]][], который возвращает []true[], если []file1[] более новый, чем []file2[]. Не используйте []/usr/bin/ksh[] на HP-UX это очень старый стандарт korn-shell (возможно 1982).[

] [

]Вот простой скрипт, который можно выполнять периодически. Он должен быть укреплен лучше, чтобы поддерживать файлы со специальными символами в именах и другими возможными ошибками, но я не очень хорош в этом.[
]. Просматриваемые файлы находятся в DIR, список новых файлов - /tmp/new file. Список создается при сравнении всех файлов в DIR с самым молодым файлом, найденным во время последнего запуска, поэтому он поддерживает создание новых файлов во время запуска. Скрипт не поддерживает одновременное выполнение нескольких операций, возможно, вам придется реализовать блокировки или проставлять пробелы для каждой операции с достаточным количеством времени. [

] [
#!/usr/bin/sh

previous=/tmp/previous
new=/tmp/newfiles
DIR=/tmp/aa

if [[ ! -s $new ]]
then
    mv "$new" "$previous"
fi

if [[ ! -f "$previous" ]]
then
    ls -rt "$DIR" > "$new"
    exit
fi

ref=$(tail -1 "$previous")

if ! cd "$DIR"
then
    echo cannot cd "$DIR"
    exit 1
fi

ls -rt | while read file
do
        if [[ "$file" -nt "$ref" ]]
        then
             echo "$file"
        fi
done > "$new"
] [

]Вы можете запускать его в []cron[], например :[

] [

]каждые пять минут (обратите внимание, что hp-ux crontab не поддерживает *5 синтаксис)[

] [
0,5,10,15,20,25,30,35,40,45,55 * * * * /myscript.sh >>/var/adm/myscript.log 2>&1
] [

]каждый час[

] [
0 * * * * /myscript.sh >>/var/adm/myscript.log 2>&1
] [

]раз в день [

] [
0 0 * * * /myscript.sh >>/var/adm/myscript.log 2>&1
]
0
28.01.2020, 04:59

Хотите что-нибудь, что отслеживает каталог? incron может быть довольно удобно для этого:
. 1. Установите инкрон из репо
. 2. Включить incrond:

sudo systemctl enable incrond.service
sudo systemctl start incrond.service

3.создать соответствующий incrontab:

incrontab -e

и добавить в качестве содержимого:

/путь/к/наблюдение в IN_CREATE /путь/к/mylogger.sh $@/$#

4.создать скрипт регистратора:

cat <<EOF>> /path/to/mylogger.sh
#!/bin/bash
echo $1 >> /path/to/logfile
EOF
chmod +x /path/to/mylogger.sh

И все.

0
28.01.2020, 04:59

Теги

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