The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Полезные приемы при работе в ОС Solaris (solaris)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: solaris,  (найти похожие документы)
From: Евгений Воронянский Date: Sun, 22 Aug 2007 17:02:14 +0000 (UTC) Subject: Полезные приемы при работе в ОС Solaris Оригинал: http://surgutnet.ru/page.php?id=34 Отмечу, что все нижеприведенные мелочи Вы можете использовать в том случае, если используете командный интерпритатор - bash. Мониторинг работы процессов При выполнении длительных операций приходится следить за окончанием процесса. Для этого можно в коменде запуска процесса через ";" указать : oracle@host$ long_process.sh;echo "End process" |mail $USER или если это не воможно, то использовать следующее: oracle@host$while true;do ps -ef |grep PID_PROCESS|grep -v grep|if read str; then sleep 1; else echo "End process"|mail $USER;sleep 600; fi;done; где PID_PROCESS необходимо заменить на PID интересующего процесса. По окончании процсса в почту текущего пользователя будет приходить напоминание о завершении процесса каждые пять минут. Если Вы часто используете "длительные процесссы", то целесообразно создать удобный скрипт: root@host>cat waitprocess #!/bin/bash usage() { echo Usage: waitprocess proc_name email messages; } if [ -z "$1" ]||[ -z "$2" ]||[ -z "$3" ]; then usage; exit -1; fi while true; do sleep 1; str=`ps -ef |grep "$1"|grep -v grep|grep -v "waitprocess"|tail -1`; [ -z "$str" ] && break 1; done; echo "$3"|mail $2 Для того чтобы определить объем оперативной памяти и количество процессоров в сисеме используйте (на SPARC платформе) prtdiag |egrep "US|Memory size" При первоначальной настройке операционной системы Вам нужно остановить лишние демоны. С помощью скрипта приведенного ниже достаточно просто сопоставить прослушиваемый порт - PID процесса 16:29|root@host>cat pp #!/bin/bash # # For Solaris 8 # PROCS=`/usr/bin/ps -ef|awk 'NR>1{print $2}'` for i in $PROCS do if [ -n "`/usr/bin/pfiles $i 2>/dev/null|grep S_IFSOCK`" ] then /usr/bin/ps -f -p $i|/usr/bin/awk 'NR>1{print}' /usr/bin/pfiles $i 2>/dev/null|/usr/bin/awk '/S_IFSOCK/{print $1, $2, $5}/sockname:/{print}' fi done Полезное в /etc/profile Для того чтобы знать под каким именем и от какого пльзователя производятся действия добавьте: PS1="`date '+%H:%M'`|$LOGNAME@`uname -n`>" после этого командная строка пинимает вид: 15:32|oracle@host> Для того чтобы автоматически экспортировать дисплей на компьютер с которого было установлено соединение посредством SSH добавьте: DISPLAY=`env|grep SSH_CONNECTION|awk '{print $1}'|sed 's/SSH_CONNECTION=//g'|awk '{print $0":0.0"}'`; export DISPLAY Внимание! В зависимости от версии sshd эта срока может иметь несколько другой вид, но думаю смысл понятен. Или другой пример реализации: DISPLAY=`/usr/xpg4/bin/who am i|awk '{print $6":0.0"}'|sed 's/(//g'|sed 's/)//g'`; export DISPLAY Полезное в crontab По умолчанию почовый демон (sendmail) по разным причинам накапливает "устаревшую" почту в очереди, поэтому добавляем в crontab пользователя от которого работает демон: 0 0 * * * /usr/lib/sendmail -q При длительной работе ОС и частых "логинах" пользователей сильно разрастается файл wtmpx, поэтому его стоит периодически очищать, так как наврядли Вам пригодится инфорация годичной давности.. 59 23 31 12 * cp /dev/null /var/adm/wtmpx Если у Вас установлен "Sar", то вот так просто можно получить статистику по загрузке за прошедший день: 59 23 * * * sar |mailx -s "SarStat" root Пользователю oracle При использовании большого числа серверов и БД достаточно часто может происходить путаница. Если добавить следующее в профиль пользователя oracle, то ее вероятность сводится к минимуму. tput clear echo '*********************************************************************' echo ' ' echo ' Machine : ' `hostname` echo ' User Id : ' $LOGNAME echo ' Home Directory : ' $HOME echo ' Default ORACLE_SID : ' $ORACLE_SID echo ' Default ORACLE_HOME : ' $ORACLE_HOME echo ' Terminal Id : ' `tty` echo ' ' echo ' ' echo '*********************************************************************' echo ' ' echo ' ' `date` echo ' ' echo '**********************************Last logins:**********************************' last -7 echo '*********************************************************************' При написании скриптов, которые выплняются на сервере с несколькими инстансами, часто приходится явно указывать переменные окружения Oracle такие как ORACLE_HOME, ORACLE_BASE и т.д. Как правило при работе с этим экземпляром все пременные уже выставлены, поэтому при создании скрипта можно экономить время: oracle@host$ set |grep ORA|awk '{print $1";"}'|while read str;do echo $str `echo $str|sed 's/=/ /g'|awk '{print "export "$1}'`; done ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_HOME=/u01/app/oracle/product/8.1.7-64; export ORACLE_HOME ORACLE_PATH=/usr/ccs/bin; export ORACLE_PATH ORACLE_SID=orcl; export ORACLE_SID ORACLE_TERM=xsun5; export ORACLE_TERM ORA_NLS=/u01/app/oracle/product/8.1.7-64/ocommon/nls/admin/data; export ORA_NLS ORA_NLS32=/u01/app/oracle/product/8.1.7-64/ocommon/nls/admin/data; export ORA_NLS32 ORA_NLS33=/u01/app/oracle/product/8.1.7-64/ocommon/nls/admin/data; export ORA_NLS33 АБД часто обращаются к файлу alert_$ORACLE_SID.log, поэтому целесообразно создать алиасы после установки переменных окружения: alias arc='tail -50 $ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log' alias arcl='tail -1000 $ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log'

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, Евгений (??), 11:01, 03/12/2007 [ответить]  
  • +/
    Статья в оригинале несколько раз обновилась....
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру