Rsync para pegar o arquivo mais novo. E um trabalho cron?

1

Eu tenho um arquivo de log em dois servidores diferentes. Os servidores estão sob um balanceador de carga, então metade do tráfego vai para um servidor e metade do tráfego vai para o outro servidor.

Eu preciso pegar o arquivo de log mais novo de uma máquina e transferi-lo para a outra máquina. Portanto, se um arquivo de log for alterado em um servidor, ele será atualizado no outro servidor.

Eu acho que preciso usar o rsync. E eu também preciso colocá-lo em um cron job?

    
por user1704877 04.11.2012 / 17:43

2 respostas

0

O rsync não pode mesclar o conteúdo de dois arquivos de log em um.

Enquanto você rsync o log remoto em um diretório diferente daquele que contém o log local, você será capaz de fazer uma cópia sincronizada para que um computador armazena todos os dados de log (embora em dois arquivos).

Como sugerido em um comentário, para mesclar logfiles continuamente, configure o software do servidor para efetuar o logon através do recurso syslog em um servidor syslog central.

    
por 05.11.2012 / 10:10
0

Você pode usar a opção -u a.k.a. --update para rsync e iniciá-la automaticamente com crontab . De a página de manual do rsync :

-u, --update                skip files that are newer on the receiver

Observe também as outras opções que podem atender a outras necessidades:

 --inplace               update destination files in-place
 --append                append data onto shorter files
 --append-verify         --append w/old data in file checksum

Em relação ao uso de um cron job, consulte crontab . Você dá ao crontab um arquivo que lê para saber quando iniciar as tarefas. O formato do arquivo é:

minute hour day_of_month month day_of_week COMMAND

Você pode fazer um trabalho ser executado a cada 7 minutos com um arquivo como:

#  .---------------- minute (0 - 59) 
#  |   .------------- hour (0 - 23)
#  |   |   .---------- day of month (1 - 31)
#  |   |   |   .------- month (1 - 12) OR jan,feb,mar,apr ... 
#  |   |   |   |  .----- day of week (0 - 7) (Sunday=0 or 7)  OR sun,mon,tue,wed,thu,fri,sat 
#  |   |   |   |  |
#  *   *   *   *  *  command
   */7 *   *   *  *  mail -s 'cron working' [email protected]

Supondo que você nomeie seu arquivo crontab como ~/crontab.bash , instale os trabalhos do crontab em uma máquina específica como:

crontab ~/crontab.bash

Veja a página wiki para mais informações.

    
por 25.02.2013 / 19:49