2013-12-18 2 views
2

Я только начинаю работать в компании, где у них есть несколько сотен сценариев оболочки, запущенных на их партии, с использованием «домашнего» планировщика, а некоторые другие скрипты запускаются вручную кем-то на суше/на мореСобрать статистику всех сценариев оболочки, запущенных

  • сценарии не были writeen после любых стандартных
  • скрипты расположены в разных каталогах (опять-таки не стандарт)
  • скрипты выходных файлов в разных каталогах (опять-таки не стандарт)
  • и т.д.

Так я думал выполнить следующие шаги, чтобы узнать, если сценарии будет overruning, если он работает слишком быстро или, если выходной файл генерируется слишком мал, слишком большой, и т.д.:

  1. Colect статистика
  2. Создать мои проверки
  3. Alarm

* Не касаясь любой из существующих универе х сценариев можно ли * ****

1 - Создайте новый скрипт, который будет контролировать все другие сценарии, которые выполняются и создать/обновить следующий файл в режиме реального времени (1 файл в день)

Script Name       pid  StartTime    EndTime     Elapsed time  Output files 
/app/scripts/scriptA.sh -x 222 1234  18/12/2013 12:00:00 18/12/2013 12:01:00  00:01:00   /app/data/customers222_20131218120000.dat  
                              /app/data/temp/customers222_20131218120000.dat 

/app/scripts/scriptA.sh -x 222 2223  18/12/2013 14:00:00 18/12/2013 14:01:00  00:01:00   /app/data/customers222_20131218140000.dat  
                              /app/data/temp/customers222_20131218140000.dat 

/app/scripts/scriptA.sh -x 333 1235  18/12/2013 12:00:00 18/12/2013 12:01:00  00:20:00   /app/data/customers222_20131218120000.dat 

/app/scripts/scriptB.sh -y 8888 1236  18/12/2013 13:00:00 18/12/2013 13:00:05  00:00:05   /app/data/suppliers888_20131318130005.dat 

2 - Загрузить monitor_running_scripts_YYYYMMDD.dat в базе данных, чтобы построить свою статистику или, возможно, работать с файлами Через несколько дней colecting статистики я буду знать, что

/app/scripts/scriptA.sh -x 222 выдает 2 файла и время автономной работы 1 мин /app/scripts/scriptA.sh -x 333 выходов 2 файлов и насчитайте время работы составляет 20 мин

3 - Создание тревоги вызывает

  • If /app/scripts/scriptB.sh занял менее 1 минуты, затем отправил электронное письмо в службу поддержки. Посмотрите на него
  • Если /app/scripts/scriptB.sh заняло более 5 минут, чтобы запустить, отправьте электронное письмо в службу поддержки, посмотрите на него

У меня нет никаких проблем для создания этапов 2 и 3 с tep 1 находится на месте. Так что я хотел бы услышать несколько советов о том, как начать шаг делает 1

OS: AIX

+0

Посмотрите на 'atop'. – tripleee

+0

Похоже, я не установлен здесь, и я не могу запросить установку на этом компьютере. кстати, я удаляю тег Linux и добавил «ОС: AIX» – George

+0

то, что вы предлагаете, возможно. Но для шага 1 вы можете потратить ** много ** времени на все возможные икоты, которые 'ps -ef',' top', '?? независимо от того, что может генерировать. Вы спросили своего начальника: «Сколько времени я хочу потратить на создание этой системы?» , Ее ответ поможет вам решить, сколько времени/усилий вы можете внести в эту критическую первую часть, и если ваш босс говорит 2 часа, и вы думаете, что потребуется 2 дня, чтобы построить то, что на 95% точнее, тогда вы должны иметь другая дискуссия с вашим боссом, торгуется, торгует ;-) .... Удачи! – shellter

ответ

1

В принципе можно просто заменить /bin/bash или /bin/sh или любую другую оболочку со скриптом, который оборачивает выполнение оболочки и журналы в этот файл , Обертывание Баш может выглядеть следующим образом:

# backup shell 
cp /bin/bash{,_orig} 
# create wrapper (overwrite shell) 
cat <<EOF > /bin/bash 
#!/bin/bash_orig 

# get starting time 
time_start=$(date) 
command="$0" 

# start original shell 
bash_orig [email protected] 
pid=$! 

# stop time 
time_stop=$(date) 

# write to log 
echo "$command $pid $time_start $time_stop" >> monitor.log 
EOF 

Если есть больше снарядов на вашей системе, она требует немного больше внимания, но это должно направить вас в правильном направлении.

Если вы когда-то закончили мониторинга вы можете отключить эту функцию с помощью:

mv /bin/bash{_orig,} 

, чтобы получить обратно оригинальную оболочку.

+0

Это не регистрирует выходные файлы. У вас есть '/ proc/self/fd/1' и друзья в AIX? См. Далее http://stackoverflow.com/questions/1188757/getting-filename-from-file-descriptor-in-c – tripleee

+0

Упс, я пропустил прокрутку вправо :) .. Вы можете улучшить мой пост, и мы это сделаем если вы хотите. Я думаю, что основы - обертывание 'sh' должно быть в порядке, не так ли? – hek2mgl

+0

спасибо за ваш ответ hek2mgl. Мои опытные и тестовые машины очень заняты, и, поскольку я не уверен, что именно это может повлиять на выполнение вышеуказанных команд, мне нужно будет больше узнать, как работают обертки exaclty и т. Д. Это будет охватывать только дату СНВ и КОНЕЦ, но это все же приветствуется – George

Смежные вопросы