Encontre: quem escreve backups

Encontre: quem escreve backups

Eu tenho um daemon que grava backups do Mongo e MySQL no diretório /opt/BACKUP, mas 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 descobrir quem escreve mongodb.* e history_2013-08-26.sql.bz2?

Responder1

Você não pode descobrir diretamente. A única informação que você tem é aproprietárioe os carimbos de data/hora dos arquivos.

proprietário

como os arquivos em questão pertencem a root, isso fornece poucas informações.

carimbos de data e hora - mongodb

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

  • /etc/crontab(improvável, já que isso geralmente é controlado pelo sistema)
  • /etc/cron.daily/(pode ser, dependendo das suas configurações; no meu sistema Debian/jessie,cron.dailyos trabalhos são executados às 6h25 da manhã, de acordo com /etc/crontag, portanto, também é improvável)
  • /etc/cron.d/(provavelmente)
  • oraiz-arquivo crontab do usuário (por exemplo, /var/spool/cron/crontabs/rootmas melhor acessado executando crontab -lcomoraizou sudo crontab -l -u root.)

carimbos de data e hora - mysql

O history.sqlarquivo é bem recente (19 de setembro) e foi criado bem cedo ( 7:07); poderia muito bem ter sido criado por um cron-job (veja acima)

O history_2013-08-26.sql.bz2foi criado em30 de agosto às 21h02; assumindo que 21h é um horário em que se espera que os administradores de sistemas façam algum trabalho e observando que há uma discrepância entre o carimbo de data e hora (30 de agosto) e o nome do arquivo (26 de agosto), presumo que este arquivo foi criadomanualmente.

Responder2

Existem maneiras de saber quem escreveu um arquivo, mas geralmente é necessário configurar um relógio com antecedência.

Como todos os arquivos foram criados aproximadamente ao mesmo tempo, procure cron jobs diários executados nesse horário. Isso tem uma boa chance de lhe dar a resposta.

Se você temContabilidade de processos BSDativado, execute lastcommpara ver quais processos poderiam estar em execução no momento em que o arquivo foi gravado. Pode ser difícil, uma vez que a contabilidade de processos apenas controla quando um processo foi iniciado, e não quando terminou a sua execução.

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

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

Outra possibilidade é comnotificar. Por exemplo, configure umíncrontrabalho:

/opt/BACKUP/mongodb.tgz IN_MOVED_TO,IN_CREATE logger $% $@/$#

informação relacionada