Cron Job para copiar o arquivo de um local para outro para novos arquivos (diariamente)

1

Como faço para criar uma tarefa cron para copiar todos os arquivos que são novos no período de um dia (todos os dias à meia-noite)? Então, essencialmente, todos os arquivos criados a partir do dia de para a nova pasta com todas as permissões, atributos de data, proprietário / grupo, no tato.

Todos os arquivos de / var / www / folder1 / para / var / www / folder2 /

usando crontab -e

Essencialmente, estou procurando os parâmetros que podem ser usados para copiar arquivos diariamente de uma pasta para outra, mantendo todos os atributos intactos.

Linux: UBUNTU 10.04 lts

    
por Ubuntu User 15.04.2011 / 05:28

2 respostas

7

o cron só executa comandos em um determinado momento. Para fazer o que você quer, você precisa descobrir um comando que irá fazer o que você quer, e então executá-lo com o cron em um determinado momento.

Por exemplo, para simplesmente copiar os arquivos de um local para outro, você pode usar

rsync -a / origin / destination

e, em seguida, agendá-lo para ser executado com o cron executando crontab -e e especificando

0 0 * * * /usr/bin/rsync -a /origin /destination

no arquivo. Isso fará com que seu rsync seja executado à meia-noite todos os dias.

Fazer isso todos os dias manterá os dois diretórios em sincronia. Se você quiser copiar apenas os arquivos que foram criados no último dia, isso é um pouco mais difícil, mas pode ser feito com find com a opção --newer e -exec para executar um cp para copiar os arquivos.

    
por 15.04.2011 / 06:17
0

Então, algo assim, tenha em mente que isso é encontrado no linux [find. -ctime 1 -print | xargs] vai te arquivos datados no último dia, basicamente 1 * 24hrs. Você pode fazer o que quiser com este filelist. Naturalmente, o rsync é um caminho a seguir, como sugerido anteriormente. É para isso que o rsync serve, mantendo estruturas de diretório espelhadas.

    
por 16.04.2011 / 02:54

Tags