Смотрите дату набора файлов

Я пытаюсь создать скрипт, который проверяет дату файлов разных каталогов и, если они старше 7 дней с момента последнего обновления, отправьте мне письмо.

Для начала я хотел бы знать, как я могу извлечь дату из файлов. Я пытался с ls -l | cut -f8 -d ' ', но я не получаю все даты.

Я также хотел бы знать, как я могу сравнить эти даты с текущей системной датой.

1
задан 09.05.2016, 14:54
2 ответа

Обрабатывать контент ls это что-то абсолютно нерекомендуемое, так как Ваш формат не является совсем стандартным. Ты можешь читать Why you shouldn't parse the output of ls, чтобы видеть все детали по этому поводу.

Как комментирует Elenasys, с stat ты можешь получать информацию о последнем изменении, последнем доступе, и т.д., файлов.

Однако, однажды получи этот результат ты будешь должен обрабатывать эти данные, сравнивать их с настоящей датой, и т.д. Y это следует, что find уже он это делает.

С этой командой ты находишь файлы внутри структуры, которые были изменены более 7 дней назад:

find /dir/dir2 -mtime +7

man find:

- mtime n

FilВs восходит was last modified n*24 hours ago.

Если то, что ты хочешь найти, является только файлами, добавь -type чтобы это показывать:

find /dir/dir2 -type f -mtime +7
1
ответ дан 24.11.2019, 14:28

Дата, которую ты можешь получать, - дата "Гєltima modificaciГіn", ты можешь получать список файлов с stat и %y, чтобы печатать дату:

stat -c %y "$entry"

, чтобы читать дату последней modificaciГіn внутри каталога:

for entry in "$directory"/* 
do
   stat -c %y "$entry" 
done 
1
ответ дан 24.11.2019, 14:28