Найти: кто пишет резервные копии

У меня есть некоторый демон, который пишет резервные копии Mongo и MySQL в каталог /opt/BACKUP , но я не знаю, какой демон, когда он работает и где я могу найти его настройки?

Эти файлы находятся в каталоге:

 -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 

Как я могу найти, кто пишет mongodb. * И history_2013-08-26.sql.bz2?

Вы не можете узнать это напрямую. Единственная информация, которую вы имеете, это владелец и временные метки файлов.

владелец

поскольку файлы, о которых идет речь, принадлежат root , это дает вам небольшую информацию.

timestamps – mongodb

Как вы можете видеть, резервные копии mongodb основном все происходят одновременно (четверть четвертого утра). Это – и тот факт, что время создания происходит по ночам, когда услуги, скорее всего, находятся под небольшой нагрузкой) делает очень вероятным, что резервное копирование инициируется процессом cron ; поэтому вам нужно проверить конфигурацию cron.

  • /etc/crontab (маловероятно, так как это обычно контролируется системой)
  • /etc/cron.daily/ (возможно, в зависимости от ваших настроек, в моей системе Debian / jessie работа cron.daily выполняется в 6:25 утра в соответствии с /etc/crontag , что также маловероятно)
  • /etc/cron.d/ (скорее всего)
  • файл crontab root -user (например, /var/spool/cron/crontabs/root но лучше всего доступен, запустив crontab -l как root или sudo crontab -l -u root .)

timestamps – mysql

Файл history.sql довольно недавний (сентябрь 19), и был создан довольно рано ( 7:07 ); он мог бы также быть создан cron-job (см. выше)

history_2013-08-26.sql.bz2 была создана 30 августа в 21:02 ; предполагая, что 9 вечера – это время, когда ожидается, что системные администраторы сделают некоторую работу и отметив, что существует расхождение между меткой времени (Aug.30) и именем файла (26 августа), я бы предположил, что этот файл был создан вручную ,

Есть способы узнать, кто написал файл, но обычно они требуют предварительной настройки часов.

Поскольку все файлы были созданы примерно в одно и то же время, найдите ежедневные задания cron, которые выполняются примерно в это же время. У этого есть хороший шанс дать вам ответ.

Если у вас включен учет учетных lastcomm BSD , запустите lastcomm чтобы узнать, какие процессы могли быть запущены в момент написания файла. Это может быть сложно, поскольку учет процессов отслеживает только процесс запуска, а не завершение работы.

Есть способы узнать, кто несет ответственность при следующем создании файла. Одна из возможностей заключается в подсистеме аудита :

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

Другая возможность – inotify . Например, настройте работу над окном :

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