Выходной журнал для bash

Итак, я выполняю скрипт перемещения для некоторых файлов старше 1 месяца каждую неделю следующим образом:

#!/bin/bash
echo "Moving Recordings Older than 30 days!";

/bin/find /var/services/homes/recordings/recording_list/ -type f -mtime +30 \
          -exec mv '{}' /var/services/homes/recordings/Old/recording_list/ \;

Я хочу, чтобы скрипт создал файл журнала с отметкой и записал, сколько файлов было найдено и переехал, с новым файлом журнала каждую неделю, есть идеи?

Спасибо,

1
задан 20 January 2018 в 01:09

1 ответ

Чтобы получить файл журнала, добавьте опцию -v к mv и соберите выходные данные:

find srcdir  -type f -mtime +30 -exec mv -v {} destdir \; >output.log

Если вы хотите, чтобы файл журнала содержал дату, и у вас есть последняя версия bash (> = 4.2-alpha), используйте:

find srcdir  -type f -mtime +30 -exec mv -v {} destdir \; >"$(printf 'file%(%F)T.log' -1)"

Если у вас нет недавнего bash, используйте вместо этого date.

Более быстрая версия

Для большей скорости используйте -exec ... +:

find srcdir  -type f -mtime +30 -exec mv -vt destdir {} + >|"$(printf 'file%(%F)T.log' -1)"

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

1
ответ дан 20 January 2018 в 01:09

Другие вопросы по тегам:

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