Log de saída para bash

1

Por isso, estou executando um script de movimentação para alguns arquivos com mais de um mês por semana da seguinte forma:

#!/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/ \;

Eu quero que o script crie um arquivo de registro e registre quantos arquivos foram encontrados e movidos, com um novo arquivo de log toda semana, alguma idéia?

Obrigado,

    
por Jay Coper 19.01.2018 / 23:08

1 resposta

1

Para obter um arquivo de log, adicione a opção -v a mv e colete a saída:

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

Se você quiser que o arquivo de log contenha a data e tenha uma versão recente do bash (> = 4.2-alpha), use:

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

Se você não tiver um evento recente, use date .

Versão mais rápida

Para maior velocidade, use -exec ... + :

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

Em vez de invocar um novo processo mv para cada arquivo encontrado, isso move muitos arquivos com uma única instância de mv .

    
por John1024 19.01.2018 / 23:33