Вот один из способов сделать это. Создает много файлов, но я не могу придумать другой способ сделать это.
Предполагая, что вас нет рядом, чтобы увидеть, когда сервер будет загружен, вы должны использовать sysstat для захвата ваших исторических данных о ресурсах.
Первый способ: используйте sysstat и собирайте статистику каждые 5 минут (это займет около 8 МБ в день). Ваша запись в cron будет выглядеть примерно так: 5 * * * * /usr /lib /sa /sa1
или 5 * * * * /usr /lib64 /sa /sa1
sysstat будет хранить до месяца данных. Но вы всегда можете скопировать файлы и заархивировать их.
Вы бы использовали команду "sar", чтобы просмотреть исторические данные, чтобы увидеть, когда ваш сервер был занят.
Теперь, когда у вас есть исторические данные на вашем сервере, вам также нужно захватить выходные данные процесса, чтобы вы могли видеть, что работает в данный момент. Вы можете использовать "PS" или "Top" для этого
Таким образом, каждые 5 минут вы также можете записывать выходные данные top и ps auxww, чтобы вы могли видеть все запущенные процессы. Я бы создал два подкаталога "toparchive" и "psarchive", а затем поместил их в качестве моих рабочих мест cron.
5 * * * * top -b -n 1 > /root/toparchive/top.`date +"%Y%m%d_%H%M%S"`
или же
5 * * * * ps auxww > /root/psarchive/ps.`date +"%Y%m%d_%H%M%S"`
(это будет много файлов, в качестве альтернативы вы можете написать его так, чтобы у вас были дополнительные подкаталоги с меткой даты, например /root /toparchive /20140701 /)
Но в основном следите за своим sysstat, и вы можете узнать, когда ваш сервер загружен, а затем проверить соответствующий вывод top или ps, который вы захватили, чтобы увидеть, что заняло ваше пространство
Если процесс загружает память, вы можете дополнительно использовать "pmap" и "pgrep" для просмотра текущих процессов и фактического использования памяти.