net4me.net

Linux технологии, сети и электроника

Архив. Старые статьи.
Примеры команд Linux
дата статьи где-то 2004-2007гг.

Archive Linux tips

Linux tips. Archive 2007

Маленькие сетевые подсказки для себя:

#====================================
#
# Edit by Ben-Ja http://net4me.net
#     On 29.05.2007 1:04:22
#  			
#====================================
===============
Сервер, с которого можно делать ping и traceroute:
telnet route-server.ip.tiscali.net
===============
управление запуском сервисов по runlevel'ам в debian, ubuntu, kubuntu:
apt-get install sysv-rc-conf
(Мне эта утилитка понравилась больше всего, хотя ntsysv всё-равно удобнее)
===============
 

отправка почты из консоли linux


Передаём содержимое файла из консоли. Утилита mail.
Например, следующая команда:
$ cat ~/.bash_profile | mail -f "myuser@mydomain.ru" -s "заголовок письма" получатель@domain.ru
отправит письмо получателю получатель@domain.ru от имени myuser@mydomain.ru с заголовком "заголовок письма"
и в качестве тела письма будет содержимое файла ~/.bash_profile

Примечание: флаг -f срабатывает не всегда и не везде.
Если его опустить, то получится команда:
$cat ~/.bash_profile | mail -s "заголовок письма" получатель@domain.ru
и письмо придет от имени вашего пользователя в системе.

Вместо отправки содержимого файла, можно воспользоваться командой echo:
$ echo "Это отправлено так: echo 'письмо' | mail -f "myuser@mydomain.ru" -s "заголовок письма" получатель@domain.ru
Но тут может быть загвоздка с кодировкой. Т.к. кодировка терминала может не совпасть с koi8-r.

Для работы с утилитой mail в качестве smtp клиента, надо чтобы на этой машине был грамотно настроен sendmail.
Утилита mail есть конечно же не только в linux, но и в BSD и в других UNIX-лайк системах.
Более подробную информацию всегда можно получить в документации к команде mail.
===============
пример netcat:
echo -e "GET http://narod.ru HTTP/1.0\

" | nc narod.ru 80 | vi -
===============
пример использования ntpdate:
ntpdate ru.pool.ntp.org
===============
если ssh удаленного сервера на другом порту:
Connect to another ssh port:
in ~/.ssh/config (for one) or in /etc/ssh/ssh_config (for all users)
пишем:
Host some.remote.server.com
Port 22222
И тогда можно будет автоматически присоединяться к другому порту из любых программ.
===============

Несколько заметок по mysql

mysql 5 + php 5 = utf8 везде и всюду

mysql 5 php 5 Везде тотально utf8 локаль uft8 базы, данные, сам дамп в utf8 сайт в utf8. Всё в utf8 от и до. Вплоть до хэдеров самой страницы:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
И? Кривая кодировка сайта. =( Если не верите, то вот:
mysql> SHOW VARIABLES WHERE Variable_name LIKE '%character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
Причем сам мускуль (после uft8 выправки конфигов в utf8 вместо идиотской latin1) данные выводит нормально. Что ни выделывал, как с бубном ни танцевал - бесполезно. Если в php скрипте насильно прописать
mysql_query('SET NAMES utf8');
то всё работает. Если убрать - перестает работать. Решилось всё насильной установкой mysql серверу параметров загрузки.
--init_connect="SET NAMES 'utf8'"
То есть в конфиге, в секцию сервера была добавлена строчка, насильно устанавлявающая NAMES в utf8:
[mysqld]
init_connect="SET NAMES 'utf8'"
character_set_server=utf8
collation_server=utf8_general_ci
И о чудо! оно заработало! В итоге настройки для тотального utf8 в mysqld выглядят так:
mysql> SHOW VARIABLES WHERE Variable_name LIKE '%character%' OR Variable_name LIKE '%collation%' OR Variable_name = 'init_connect';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
| collation_connection     | utf8_general_ci            |
| collation_database       | utf8_general_ci            |
| collation_server         | utf8_general_ci            |
| init_connect             | SET NAMES 'utf8'           |
+--------------------------+----------------------------+
12 rows in set (0.00 sec)
Обратите внимание на init_connect и SET NAMES 'utf8'

Восстановление забытого пароля mysql

Когда администрируешь множество серверов, то существует вероятность, что на одном из серверов вы забудете пароль доступа к mysql. И root и сервер наш, а доступа к базам нет. При этом хотелось бы не терять важные данные из mysql баз. Как же взломать админский пароль не уничтожая данные? Оказывается, получить доступ к mysqld будучи рутом на сервере просто:
  • Останавливаем сервис mysql:
    service mysqld stop
  • Запускаем mysql следующей командой:
    /usr/bin/mysqld_safe --skip-grant-tables --user=root &
    При этом будет проигнорирована таблица привилегий. т.е. теперь mysql нас пустит без пароля.
  • Запускаем клиента mysql:
    mysql -u root
  • Выполняем sql запрос для смены пароля пользователю. Например, с логином root:
    UPDATE mysql.user SET Password=PASSWORD('my_new_pass') WHERE User='root';
    где my_new_pass - наш новый пароль.
  • Применяем изменения:
    FLUSH PRIVILEGES;
  • Выходим из mysql клиента выполнив в нем команду exit (или quit или \\q)
  • Перегружаем mysql сервер:
    service mysqld restart
    Теперь таблица привилегий уже использовалась при старте. т.е. без пароля уже не войти.
  • пробуем зайти:
    mysql -u root -p
    и вводим наш новый пароль, который мы использовали.
Вуаля. Сервер не пришлось убивать, базы остались как и были в целостности и сохранности. Никаких данных не пострадало, кроме измененной записи в таблице привилегий.','Восстановление забытого пароля mysql. mysql 5 php 5 всё в utf8.







Пока копался в интернете, нашел замечательную штуку:
[ $[ $RANDOM % 6 ] == 0 ] && echo "BOOM" || echo “You live”
Ну. конечно echo "BOOM" там было заменено на rm -rf / для остроты ощущений =))) Шестизарядный. Классика! =)

-vo aa и caca

Продолжаю обживать текстовую консоль на своём ноутбуке. Интернет-радио уже слушаю, заряд батареи вижу, mc и vim итак были всегда в моём арсенале. А что же с видео? Ну конечно же тут я вспомнил, как смотрел когда-то первую "матрицу" через aalib. Оказывается, эти aa и даже каки (caca) живы до сих пор! Ну чтож, почитав доков, манов и наигравшись с параметрами, пришел вот к такой строчке:
 mplayer -vo aa -monitorpixelaspect 0.37 -nosub -noautosub -quiet -framedrop -contrast 25 Chempion.korNet.avi 
Ну и, конечно же сразу засунул это в алиас.
 alias maa="mplayer -vo aa -monitorpixelaspect 0.37 -nosub -noautosub -quiet -framedrop -contrast 25";
теперь maa файл_фильма.avi С какой оказалось сложнее, она хоть и цветная (пример можно посмотреть командой cacafire и сравнить с aafire), но меньше заточена под консоль. В основном, параметры каки относятся к оконному терминалу. А зачем мне в графике смотреть буковки? Непонятно. Так что caca была отнесена мной в разряд приколов и забав. А вот на aalib остановился как на инструменте.
Замена текста рекурсивно. Вот понадобилось старое название сайта на новое (но тоже старое) заменить во всех файлах.
find ./ -type f -print0 | xargs -0 sed -i 's/net4me\.ru/net4me.net/g'

Читаем данные мышки
sudo cat /dev/input/mice | od -t x1 -w3