среда, 26 ноября 2008 г.

Создание гиперссылки внутри страницы

При работе с CMS Jooomla, а если конкретнее с редактором (имя) возникает необходимость создание гиперссылки внутри страницы. Для этого в нужном месте страницы нужно нажать пиктограмму якоря, расположенную на инструменальной линейке и дать ему имя латинскими буквами.

Для перехода на этот якорь нужно выделить текст, который станет гиперссылкой, а затем нажать га пиктограмму гиперрссылки и поставить #имя-якоря.

понедельник, 24 ноября 2008 г.

Если что-то надо сделать больше, чем один раз - значит надо писать скрипт

Цитата:
http://rus-linux.net/lib.php?name=MyLDP/admin/good-sysadmin.html

Из опыта работы сисадмином я вынес одну мысль - "Если что-то надо сделать больше, чем один раз - значит надо писать скрипт". К примеру, если каждое утро нужно проверять состояние своих серверов, тогда я пишу bash-скрипт, который собирает нужную информацию, придает ей нужный вид и отправляет отчет по почте. Если нужно сменить конфигурацию на 12 различных машинах, для этого я напишу скрипт. Казалось бы, проделать мелкую работу можно вручную и это будет проще, чем написать и отладить соответствующий скрипт. Однако в моем подходе к работе есть некоторые преимущества. Когда скрипт написан и отлажен, значит его можно повторять в будущем, его запуск можно поручить низкоквалифицированным техникам, либо автоматизировать его выполнение. И вам не придется выполнять рутинные операции, все возьмет на себя скрипт, и сделает это четко и гарантированно. Вернемся к скриптам чуть позже.

Чтобы задействовать мощь скриптов для управления несколькими серверами, нужно настроить для каждого сервера беспарольный доступ по сертификатам. Для каждого сервера это займет не более нескольких минут - однако сделает жизнь куда легче. Когда вводить пароль не приходится, операции передачи файлов, резервное копирование и профилактические операции - все это можно писать в скриптах. В сети есть множество инструкций, как настроить аутентификацию по сертификатам, этот процесс здесь описан не будет.

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

# servers.sh export MAILSERVERS="server1 server2 server3" export WEBSERVERS="www1 www2 www3 www4" 

После этого я могу написать простой скрипт, что-то вроде этого:

#!/bin/bash ### Сколько свободного места на почтовых серверах source ./servers.sh for i in ${MAILSERVERS} ; do        echo =========${i} =============        ssh root@${i} "df"        echo ============ ============= done 

Этот простой скрипт быстро сообщает мне о наличии свободного места на почтовых серверах. Его также можно использовать как шаблон для других задач. Когда мне нужно написать другой скрипт, я делаю копию этого скрипта, меняю комментарий на второй строке и меняю тело цикла.

Все мои скрипты подключают файл servers.sh - это центральный конфигурационный файл. Когда я добавляю или убираю сервер, я просто редактирую соответствующим образом этот файл.

Обратите внимание на комментарий на второй строчке. Когда у вас накопится, к примеру, 50 различных скриптов, станет сложно запоминать, что делает каждый из них. Можно, конечно, именовать их наподобиесвободное_место_на_почтовых_серверах.sh, но мне так не нравится. Так что когда мне нужно узнать, что делает какой-либо скрипт, я набираю:

grep "###" * 

Эта команда выводит мне список скриптов с кратким описанием того, что они делают.

Еще из своего опыта я вынес такую технику, что каждый скрипт в зависимости от задачи выполняется каждый день, неделю или месяц - я помещаю его в расписание cron, и результат выполнения приходит мне по электронной почте. Во многих системах есть каталоги, из которых cron выполняет скрипты каждый час (hourly), ежедневно (daily), или еженедельно (weekly). Однако мне не нравится такой подход, ведь администратор должен точно знать, когда должна выполняться операция, а не cron должен решать это за него. Поэтому я предпочитаю ручное редактирование crontab. К примеру, я хочу, чтобы резервное копирование выполнялось в нерабочее время. У меня есть более срочные дела, чем изучение формата crontab, поэтому в каждый такой файл я помещаю следующую строку:

# min   hour    dom     month   dow     command 

Она помогает мне быстро писать задания, и двигаться дальше. Это одна из простейших вещей, которая может сохранить время и силы.

Журналирование (через syslog) - это функция любой Linux-системы, однако по причине большого объема файлов журналов, эти возможности используются не в полную силу. Обычно администраторы настраивают logrotate для удаления старых журналов. Лишь когда что-то происходит, администратор смотрит в логи и ищет причину сбоя. В syslog я добавил журналирование веб-серверов, файрволла, почты и других служб. Никогда не любил читать логи строка за строкой, выискивая там ценную информацию. Вместо этого весьма полезно написать что-то вроде программы для анализа журналов, пусть даже это будет несколько операций grep. Эта программа должна развиваться вами, чтоб она могла отбрасывать все больше и больше ненужных данных. Когда вы сделаете это, и настроите отправку отчетов по электронной почте, вам будет достаточно одного взгляда, чтоб понять, что все в порядке (или наоборот).

Мне кажется, что настраивать систему анализа журналов на нескольких серверах - это слишком много работы. Можно сделать так, чтобы сервера отправляли журналы на какой-то один компьютер. После этого понадобится настроить лишь один анализатор, и не придется распространять его конфигурацию по всем серверам. Для копирования файлов журналов можно воспользоваться удаленным доступом по SSH, а анализировать журналы локально.


пятница, 21 ноября 2008 г.

TortoiseSVN - Клиент Subversion для Windows

Скачал и поставил TortoiseSVN, для проекта на code.google.com. Читаю эту документацию http://tortoisesvn.net/docs/release/TortoiseSVN_ru/index.html для работы с репозитарием.

Пока создал папочку в корне на диске F: и встав на нее в проводнике виндовс сказал вызвал контекстное меню. Выбрал SVN Checkout и заполнил URL репозитария https://sg0809.googlecode.com/svn/trunk/. Имя и пароль выдаются когда авторизован на проекте. Создалась папка .svn внутри той на которой стоял.  Туда положил нужные файлы и также встав на них вначале сделал svn Add.., а затем svn commit.

Пока обнаружились проблеммы с win-1251 кодировками. Взял перекодировщик из UTF-8 в Windows-1251 и обратно с http://x-romix.narod.ru/UTF8_1251.rar. Для перекодирования из UTF-8 в win1251 он подошел, а наоборот нет. Взял староый добрый http://www.zlatkovic.com/pub/libxml/iconv-1.9.2.win32.zip которым всегда gjmpe.cm под nix. iconv.exe -f WINDOWS-1251 -t UTF-8 arstan.tcl > arstan88.tcl и все работатет.

четверг, 20 ноября 2008 г.

Использование tcpdump

Команды

/usr/sbin/tcpdump -n host not 84.22.133.164 and port 80
/usr/sbin/tcpdump -n port 53
/usr/sbin/tcpdump -n port 25
 /usr/sbin/tcpdump -vv -x -X -s 1500 -i eth0 'port 25'
/usr/sbin/tcpdump -nn -x -X -s 96 port 25 and host 84.22.133.165

Ссылки по теме: