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

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

У меня есть демон, который записывает резервные копии 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?

решение1

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

владелец

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

временные метки - mongodb

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

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

временные метки - mysql

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

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

решение2

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

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

Если у вас естьУчет процесса 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 $% $@/$#

Связанный контент