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