Можно ли определить, что файл был переименован?

@ John1024 уже дал вам хороший ответ , но я подумал, что добавлю еще немного.

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

Если ваш архив называется /data/logs/logfiles-2016-08.tar для августа, а сами ротационные файлы журналов на определенную дату называются / var / log / servicename-2016-08-06.log (для ряда различных значений servicename ) у вас может быть небольшой сценарий, который задание cron вызывает в 3 часа ночи, которое выполняет

#!/bin/sh

yyyymm="$( date --date="1 day ago" +"%Y-%m" )"
yyyymmdd="$( date --date="1 day ago" +"%Y-%m-%d" )"

for logfile in /var/log/*-$yyyymmdd.log; do
  tar -r -C /var/log -f "/data/logs/logfiles-$yyyymm.tar" "${logfile##*/}" &&
  rm "${logfile##*/}"
done

Флаг -r указывает tar добавлять записи в архив. Флаг -C используется для указания tar изменить каталог на / var / log перед доступом к файлам журнала. Флаг -f указывает расположение архива. $ {logfile ## * /} будет расширен до базового имени (имени файла без пути) файла журнала (его можно заменить на $ (базовое имя «$ logfile») ) .

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

#!/bin/sh

yyyymm="$( date --date="1 month ago" +"%Y-%m" )"

gzip --best "/data/logs/logfiles-$yyyymm.tar"

. Это немного сложнее, чем просто выполнять

cd /var/log &&
tar -c -z -f /data/logs/logfiles-2016-08.tar.gz *-2016-08-??.log &&
rm *-2016-08-??.log

один раз в месяц, но тем не менее могут быть причины для этого. .

Примечание: файл может быть добавлен в архив с помощью tar -r , но архив не может быть сжатым архивом в то время (GNU tar ] может это поддержать). Если архива не существует, он будет создан. Также обратите внимание, что для моих примеров выше требуется дата GNU .

3
21.06.2016, 00:41
0 ответов

Теги

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