Find: quem escreve backups

2

Eu tenho um daemon que grava backups do Mongo e do MySQL no diretório /opt/BACKUP , mas eu não sei - que tipo de daemon, quando funciona e onde posso encontrar suas configurações?

Esses arquivos estão no diretório:

-rwxrwxrwx 1 root  root 10954766682 Aug 30 21:02 history_2013-08-26.sql.bz2
-rw-r--r-- 1 root  root 22707064861 Sep 19 07:07 history.sql
drwx------ 2 root  root       16384 Dec 24  2012 lost+found
drwxr-xr-x 3 root  root        4096 Sep 19 03:12 mongodb
-rw-r--r-- 1 root  root  6708923175 Sep 18 04:16 mongodb.0.tgz
-rw-r--r-- 1 root  root  6685715560 Sep 17 04:16 mongodb.1.tgz
-rw-r--r-- 1 root  root  6733542547 Sep 19 04:17 mongodb.tgz
drwxr-xr-x 5 mysql root        4096 Sep 19 06:25 mysql
drwxr-xr-x 2 root  root        4096 Dec 24  2012 nobacula
drwxr-xr-x 2 root  root        4096 Aug 29 04:05 tmp

Como posso encontrar quem escreve mongodb. * e history_2013-08-26.sql.bz2?

    
por SoWa 19.09.2013 / 09:09

2 respostas

3

Você não pode descobrir diretamente. A única informação que você tem é o proprietário e os timestamps dos arquivos.

proprietário

como os arquivos em questão são de propriedade de root , isso fornece pouca informação.

timestamps - mongodb

Como você pode ver, os mongodb backups basicamente acontecem todos ao mesmo tempo (quatro e quinze da manhã). Isso - e o fato de que o horário da criação é em algum momento à noite, quando os serviços provavelmente estão sob pouca carga - torna muito provável que o backup seja acionado por um processo cron ; portanto, você precisa verificar a configuração do cron.

  • /etc/crontab (improvável, pois isso geralmente é controlado pelo sistema)
  • /etc/cron.daily/ (pode ser, dependendo das suas configurações; no meu sistema Debian / jessie, as tarefas cron.daily são executadas às 6:25 da manhã de acordo com /etc/crontag , portanto, improvável também)
  • /etc/cron.d/ (mais provável)
  • o arquivo crontab do root -user (por exemplo, /var/spool/cron/crontabs/root , mas é mais acessado executando crontab -l como raiz ou sudo crontab -l -u root .)

timestamps - mysql

O arquivo history.sql é bem recente (Set.19) e foi criado bem cedo ( 7:07 ); pode muito bem ter sido criado por um cron-job (veja acima)

O history_2013-08-26.sql.bz2 foi criado em 30 de agosto às 21:02 ; supondo que 9pm é um tempo em que se espera que os sysadmins façam algum trabalho e observando que há uma discrepância entre o timestamp (30 de agosto) e o nome do arquivo (Aug.26), eu presumo que esse arquivo tenha sido criado < em> manualmente .

    
por 19.09.2013 / 10:23
0

Existem maneiras de saber quem escreveu um arquivo, mas elas geralmente exigem a configuração prévia de um relógio.

Como todos os arquivos foram criados mais ou menos ao mesmo tempo, procure por tarefas cron diárias executadas por esse período. Isso tem uma boa chance de dar a resposta.

Se você tiver contabilidade do processo do BSD ativada, execute lastcomm para ver o que processos podem ter sido executados no momento em que o arquivo foi gravado. Pode ser difícil, uma vez que a contabilidade do processo apenas registra quando um processo foi iniciado, não quando terminou a execução.

Existem maneiras de descobrir quem é responsável na próxima vez que um arquivo for criado. Uma possibilidade é com o subsistema de auditoria :

auditctl -A exit,always -F path=/opt/BACKUP/mongodb.tgz -S open -S rename

Outra possibilidade é com inotify . Por exemplo, configure um trabalho incron :

/opt/BACKUP/mongodb.tgz IN_MOVED_TO,IN_CREATE logger $% $@/$#
    
por 20.09.2013 / 02:11

Tags