Precisa de um script de shell para encontrar o arquivo mais recente de um diretório e movê-lo para outro em uma base semanal

1

Eu sou novo no shell de scripts e preciso de ajuda com isso. Eu tenho um requisito para mover o arquivo de despejo expdp mais recente de um diretório para outro, onde ele será mantido por 90 dias e depois excluído. Este trabalho deve ser executado uma vez por semana.

    
por user273621 24.04.2014 / 15:12

3 respostas

2

Crie um script com algo assim:

#!/bin/sh
mv "$(ls -t <name of your file> | head -1)" /directory/it/has/to/go
find /directory/it/has/to/go -type f -mtime 90 -exec rm {} +

Agora, precisamos criar um cronjob para que esse script seja executado toda semana.

$: crontab -e

Adicione esta linha:

0 0 * * 0 yourscript.sh >/dev/null 2>&1
    
por Fuwan 24.04.2014 / 15:38
1

Eu usaria crontab para agendar um comando. Para fazer isso, execute crontab -e e adicione algo como o seguinte:

0 8 * * Mon  bash -c 'cd /path/to/dir; mv "$(ls -t expdp*.dump | head -1)" /another/dir/'

Isso procurará pelo arquivo mais recente que corresponda a expdp*.dump em /path/to/dir e mova-o para /another/dir/ . Programado para ser executado às 8h, todas as segundas-feiras.

    
por Oli 24.04.2014 / 15:33
-1

Você poderia usar algo assim (não tenho idéia se essa é a melhor maneira de fazer isso, já que eu coloquei algo em conjunto e está funcionando).

#!/bin/bash
cd /source/directory/
cp 'ls -1t | head -1' /destination/directory/
    
por Louis Matthijssen 24.04.2014 / 15:34