как использовать сценарий оболочки, проверяющий в последний раз измененное время файла

Переработайте закрывает процесс, размещающий appdomain. Вы заметите, что PID изменяется при переработке его.

Разгрузка AppDomin просто разгружает все блоки в AppDomain, который может тогда быть снова использован.

важная вещь помнить состоит в том, что, как только CLR загружается в процесс, он не может быть удален. Таким образом, если необходимо было сделать что-то, как только CLR загружается, тогда просто разгружение AppDomain не поможет, потому что CLR не будет перезагружен.

Также не, что IIS не является единственным процессом, который может разместить AppDomain - любой процесс может, и Вы не всегда хотите уничтожить целый процесс только для разгрузки блоков.

10
задан derrdji 30 July 2009 в 14:40
поделиться

4 ответа

Вы можете получить время последнего изменения файла с помощью stat , а текущую дату с помощью date . Вы можете использовать строки формата для обоих, чтобы получить их в «секундах с начала эпохи»:

current=`date +%s`
last_modified=`stat -c "%Y" $file`

Тогда довольно легко поставить это в условие. Например:

if [ $(($current-$last_modified)) -gt 180 ]; then 
     echo "old"; 
else 
     echo "new"; 
fi
21
ответ дан 3 December 2019 в 15:06
поделиться

Команда stat выдаст вам время последней модификации

stat -c %y <filename>
3
ответ дан 3 December 2019 в 15:06
поделиться

Изменение отметки времени файла на самом деле не означает, что вы успешно скопировали.
Если вы повредите файл или в файловой системе закончится место,
вы, вероятно, по-прежнему увидите изменение метки времени (необходимо подтвердить это).

Я не понимаю точного контекста вашего требования.
Если вы запускаете cp , он завершается и возвращается - не возвращается, пока работает.
Итак, разве возврат (с успешным кодом выхода) не является хорошим индикатором успеха?

Как и почему вы должны частично выйти из операции cp ?
Или это пакетный cp сценарий, который перебирает список файлов ...
некоторая проработка поможет.

0
ответ дан 3 December 2019 в 15:06
поделиться

Синтаксис этого оператора if зависит от вашей конкретной оболочки, а команды даты - нет. Я использую bash; при необходимости измените.

if [ $(( $(date +%s) - $(date +%s -r <file>) )) -le 180 ]; then
    # was modified in last three minutes
else
    # was not modified in last three minutes
fi

+% s сообщает date, что нужно выводить время UNIX (важный бит - это целое число в секундах). Вы также можете использовать stat для получения этой информации - команда stat -c% Y эквивалентна. Обязательно используйте % Y , а не % y , чтобы получить полезное время в секундах.

4
ответ дан 3 December 2019 в 15:06
поделиться
Другие вопросы по тегам:

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