А их и не надо грабить. Утилиты whois, telnet и dig способны вытащить помоему всю возможную информацию. И вообще одного telnet на все достаточно.
Просто это другой культурный уровень. В данном случае малозначительно. Сейчас это по сути ничем не вредит. Но завтра напишите чуть более крупный скрипт по привычке через файл и сделаете нагрузку на диск и к тому же понизите надежность работы скрипта, потому что диск отваливается чаще памяти, да и очереди к нему выше, что задержит выполнение работы скрипта (а если там будет по крону, то еще и наложит друг на друга).
Короче привыкайте делать изначально качественно, даже если качество не требуется. Привычка - самое главное.
Незачто. Я там дополнил немного.
Не знаю :) Данные полчаете сомнительной ценности. Но может кому и пригодится. Вообще я бы быстрее руками посмотрел, что мне надо. На вкус и цвет...
# USAGE:#bash hto.sh домен# или:#bash hto.sh ip.add.re.ss# если сделать алиас (см.выше), то можно писать:#этхтоваще домен# или:#этхтоваще ip.add.re.ss# вместо "домен" написать нужный домен, и вместо "ip.add.re.ss" - нужный IP-адрес
Изучайте функцию getopts. Комментарии в коде не для пользователя существуют, а для программиста, который правит. Остальное через флаги выводится (или отсутствие флагов). Пользователю тяжело читать что-то в консоли. Как правило он не умеет.
if [ "$flag" = "1" ]; then echo "exit"; exit;fi#---> проверка введенных данныхif [ "$1" = "" ]; then echo "введи домен или ip! //опции: -v, -u, -h, -p, -y"; exit;fi
Все тот же getopts. Вообще половину скрипта можно выкинуть и заменить на десяток строчек getopts. При этом скрипт будет более читабельным и очевидным. Потому что я с трудом смог понять, что в нем делается.
К тому же очень много копипаст по коду. Чтобы не было копипаст,нужно один раз написать функцию, а потом ее дергать.
#--- СБОР IP echo "" > /tmp/ip1.txt && chmod 666 /tmp/ip1.txt echo "-> получаю IP с NS..."; for i in `cat /tmp/ns.txt`; do#---> $1 - домен, $i - NS из того временного файла ip=`host -t A $1 $i | grep -v "has\ no" | awk '{print $4}' | sed '/^ *$/d'`; if [ "$ip" = "" ]; then echo "с $i нет нифига";#---> пишем IP-ы во временный файл, сортируем его, ниже выводим список IP-ов else echo $ip | sed 's/\ /\n/g' >> /tmp/ip1.txt fi done
Изучайте массивы. Не хранят такое в файлах.
if [ "$i" = "67.215.66.132" ]; then
Хардкод. Такие вещи выносятся в начало скрипта в отдельную переменную.
echo "A нет нифига, походу домен невалидный";...rez=`nc -vw 1 -z $1 $port 2>&1 | egrep -vi '(timed.out|refused|in.progress)'`; #ёбаный дебиан!
Вот такое неуважение к собственному коду (псевдокураж над собственным кодом) бывает исключительно в мире похапэшников. Вы не на PHP пишете, потому нет смысла выключать официоз.
=========
P.S.: пример как использовать функции и массивы. Примеры. что были под рукой, не адаптированные под Вашу задачу. но показательные.
Кусочек apache2ctl, который проверяет ИСП на предмет уродования конфига, прежде чем рестартануть его). Весь код пишется один раз:
restore_config() { cp $APACHE2CONF'.backup' $APACHE2CONF exit 0;}extended_apache_configtest() {APACHE2CONF="/etc/apache2/apache2.conf" if ! $HTTPD ${APACHE_ARGUMENTS} -t > /dev/null 2>&1; then $HTTPD ${APACHE_ARGUMENTS} -t || true restore_config fi if grep "^Listen" $APACHE2CONF /dev/null 2>&1; then restore_config fi cp $APACHE2CONF $APACHE2CONF'.backup'}case $ARGV instart) mkdir -p ${APACHE_RUN_DIR:-/var/run/apache2} install -d -o ${APACHE_RUN_USER:-www-data} ${APACHE_LOCK_DIR:-/var/lock/apache2} # ssl_scache shouldn't be here if we're just starting up. # (this is bad if there are several apache2 instances running) rm -f ${APACHE_RUN_DIR:-/var/run/apache2}/*ssl_scache* $HTTPD ${APACHE_ARGUMENTS} -k $ARGV extended_apache_configtest ERROR=$? ;;stop|graceful-stop) $HTTPD ${APACHE_ARGUMENTS} -k $ARGV ERROR=$? ;;restart|graceful) extended_apache_configtest if $HTTPD ${APACHE_ARGUMENTS} -t 2> /dev/null ; then $HTTPD ${APACHE_ARGUMENTS} -k $ARGV else $HTTPD ${APACHE_ARGUMENTS} -t fi ERROR=$? ;;
Пример как использовать массивы:
declare -a database_list for DATABASE in `mysql -uroot -p$PASSWORD mysql -N --execute=\"show databases;\"` do database_list[db++]=$DATABASE; doneну и собрав массив вот так использовать:for database_item in ${database_list[@]}; \do mysqldump ... $database_item ... > ...done
Пример использования getopts:
E_BADARGS=65PrintHelpAndExit() { echo echo "Порядок использования:";echo echo "$0 [-a] -s hostN -b backupN";echo echo "Где hostN - имя хост-машины (Dom0), а backupN - имя бэкап-сервера" echo "или вместо hostN, serverN/IP-address, в случае бэкапа одного пользователя"; echo echo "Флаги:" echo "-s -- Имя целевого сервера" echo "-b -- Имя бэкап-сервера" echo "-t -- Тестовый запуск при подключении нового сервера" echo "-u -- User_ID удаляемого пользователя" echo "-a -- Бэкап всех серверов включая служебные" echo " (проигнорируется при использовании флага "-u")"; echo " (по умолчанию бэкапится только сервер," echo " на котором находятся пользовательские данные)"; echo "-h -- Просмотр этой справки"; echo exit $E_BADARGS;}# Exemining options from command linewhile getopts "s:b:u:aht" optionName; docase "$optionName" in a) ALL_SERVERS=YES;; s) HOST=$OPTARG;; b) BACKUP_SERVER=$OPTARG;; u) USER_TO_DELETE=$OPTARG;; t) DRY_RUN=YES;; h) PrintHelpAndExit 0;; \?) PrintHelpAndExit 0;; *) PrintHelpAndExit $E_BADARGS;;esacdone
По Вашему мнению устойчивых хостингов вообще не бывает. Операционную систему они себе уже как минимум не сами писали.
Кстати, панель напрямую на устойчивость хостинга вообще никак не влияет. Апач был и до панели и как-то умел самостоятельно обслуживать HTTP-запросы. Вроде как ничего не изменилось. В цепочке браузер->реверс-прокси->вэб-сервер->СУБД панель не встречается.
Зря на ТС наезжаете. ISPmanager конечно жутко бажная, но можно все вокруг нее допилить, вырубить апдейты и ничего она тогда поломать не может. Они вон с Января работают, наверняка уже допилили.
Это не говорит, что Убунту способна выполнять такие роли. Мало ли какие там амбиции у Шаттлворта. Убунту из дома лучше не вылазить.
Вы путаете умерших от капитализма с умершими от рук капиталистических стран. Последние умирают вне зависимости от того, какой строй в стране. Торговали оружием и нефтью равно как капиталисты, так и коммунисты. И убивали чужаков соразмерно своим возможностям вне зависимости от внутреннего экономического и социального строя. От рука капиталистов в Люксембурге умерло 0 человек, от рук капиталистов в США больше. Можно дело не в капитализме и не надо его примешивать к внешней политике?
Зато я Вам расскажу чего нет в капиталистических странах: там не стрелляют своих. Расстрелы питерских рабочих и голодомор были, 38-й год был. А вот расстрела каких-нибудь рабочих от штата Вайоминг или рабочих города Марсель не было никогда. И быть не могло.
И в развитых странах от голода умирают тольо алкоголики. Масштабы несравнимо ниже комунистических голоданий Поволжья. Развитая рыночная экономика вообще-то не склонна к поражению голодом. Именно капиталистические страны поставляют мегатонны продовольствия тоталитарным в Африке, а не наоборот.
Это солдаты СССР кушали амертканскую тушенку во Второй Мировой, а не американцы коммунистическую. Это в СССР были талоны, а не в Европе и США. Это в СССР нечего было жрать, а в 20-х годах 20-го века в США был кризис перепроизводства.
Мне в отличии от Вас довелось жить как в коммунистическом СССР. так и в двух развитых капиталистических государствах. И поверьте, голодных я видел только в СССР (собственно свою семью)
У них нет времени. Они жмут мексиканцев )))
Ну я так понимаю, что попытки устроить коммунизм мало у кого увенчались успехом. От фашизма погибло миллионов 80, а от коммунизма в разы больше. Так что если уж фашизм запрещен, то коммунизм и подавно.
То есть сам по себе коммунизм - строй может быть и хороший, но практика вот смущает... лучше сразу запретить.
PID - номер процесса.
USER - пользователь, который его запустил (или из под которого его запустили)
DISK READ - скорость чтения с диска (абсолютные цифры нагрузки, которую дает на диск данный процесс)
DISK WRITE - скорость записи на диск (абсолютные цифры нагрузки, которую дает на диск данный процесс)
SWAPIN - вымещение данных на своп (Вам не надо)
IO - процент использования диска данным процессом от общего использования
COMMAND - программа, запущенная из под USER (который выше описан) и которая как раз этот диск и мучает.
Таким образом находите у кого самый высокий IO - он и виноват в мучениях диска.