Шапаргалка для Linux администраторов, shell команды

Шпаргалка собранная кровью, не раз меня выручала и выручает по сей день, пользуйтесь на здоровье:

Команды bash

http://mymistery.ru/freebsd/freebsd-konsolnyie-komandyi.html
http://webadmin.ur.ru/wiki/doku.php?do=export_xhtml&id=ssh
http://itadept.ru/posts/freebsd-commands/

# Работа с CURL
# сделать curl запрос с использованием клиентского сертификата и ключа на https страницу
curl -v -s -k —key xxxx.key —cert xxxx.crt https://mpitest.bspb.ru:5443

# Проверить сертификат .crt и ключ .key
# параметр Modulus должны совпадать в обоих случаях
openssl x509 -noout -modulus -in kut_nalog_ru_ee.crt
Modulus=BDECBD7EDE2505F5BD6C408F8DFF5D8737061F04DA6A363F1D5EA9B1E30E5A55F33242DED3D2DD5B096F3C154755E17E5B80719FE721545E856BE418B62E13C0997173E2BF9DCF36C9F395A56A96FC4F7C5C98785CCBA154CA2DE47961BD7CDDD1F40D7550693C901AFBB141DDD611A051CB780092C711D23FAADDFEECF74B07EC70CE700D8E2FFCF7C76225F871540FF95B165FD4F0050F0F765FD2F248401670DA4193B4D829D5E8872B536534BC074D139CD1307EC761630EDA751D6C5FA1B2E1C9A9220EE3DEF47B3DE81DD07622D2AAC1FECA26A342CEE096AD6AD5097B1BE72BF65D6500F9A982DEF985F8AA383CE1EBA90227893AEF319C4249486975

openssl rsa -noout -modulus -in kut_nalog_ru.key
Enter pass phrase for kut_nalog_ru.key:
Modulus=BDECBD7EDE2505F5BD6C408F8DFF5D8737061F04DA6A363F1D5EA9B1E30E5A55F33242DED3D2DD5B096F3C154755E17E5B80719FE721545E856BE418B62E13C0997173E2BF9DCF36C9F395A56A96FC4F7C5C98785CCBA154CA2DE47961BD7CDDD1F40D7550693C901AFBB141DDD611A051CB780092C711D23FAADDFEECF74B07EC70CE700D8E2FFCF7C76225F871540FF95B165FD4F0050F0F765FD2F248401670DA4193B4D829D5E8872B536534BC074D139CD1307EC761630EDA751D6C5FA1B2E1C9A9220EE3DEF47B3DE81DD07622D2AAC1FECA26A342CEE096AD6AD5097B1BE72BF65D6500F9A982DEF985F8AA383CE1EBA90227893AEF319C4249486975
# Сгенерить новый CSR и ключ
cd /etc/ssl/
openssl req -new -nodes -out csr/passport.newnn.ru-startssl-req-date +%FT%T.pem -keyout keys/passport.newnn.ru-startssl-key-date +%FT%T.pem -config ./openssl.cnf

# Сгенерить новый CSR из текущего ключа
cd /etc/ssl/
openssl req -new -nodes -out csr/passport.newnn.ru-startssl-req-date +%FT%T.pem -key /etc/nginx/ssl/ssl_slim.key -config ./openssl.cnf

# openssl x509 -text -in servernamecert.pem # Посмотр информации о сертификате
# openssl req -noout -text -in server.csr # Информация запроса
# openssl s_client -connect cb.vu:443 # Проверить сертификат Веб сервера
openssl s_client -cert server_cert.pem -key server_key.pem -connect mpi.bspb.ru:5443

# Проверить OCSP верификацию на домене с сертификатом
echo QUIT | openssl s_client -servername img.new-nn.ru -connect img.new-nn.ru:443 -CAfile startssl-ca-certs.pem -tls1 -tlsextdebug -status
echo QUIT | openssl s_client -servername lk.callback.club -connect lk.callback.club:443 -CAfile startssl-ca-certs.pem -tls1 -tlsextdebug -status

# OCSP транзакция
openssl ocsp -noverify -no_nonce -respout ocsp.resp -issuer ssl_callback.club.pem -CAfile startssl-ca-certs.pem -cert ssl_callback.club.crt -url http://ocsp.startssl.com/sub/class1/server/ca -header «HOST» «ocsp.startssl.com»

# OCSP проверка по серийному номеру сертификата
openssl ocsp -issuer startcom_sub.class1.server.ca.pem -CAfile startssl-ca-certs.pem -url http://ocsp.startssl.com/sub/class1/server/ca/ -serial 0x05A4C27C138085 -text -header «HOST» «ocsp.startssl.com»

# OCSP проверка по сертификату
openssl ocsp -issuer startcom_sub.class1.server.ca.pem -CAfile startssl-ca-certs.pem -cert ssl_callback.club.crt -url http://ocsp.startssl.com/sub/class1/server/ca/ -text -header «HOST» «ocsp.startssl.com»

wget https://www.startssl.com/certs/ca-sha2.pem
wget https://www.startssl.com/certs/class1/sha2/pem/sub.class1.server.sha2.ca.pem

# правильный trusted_certificate PEM для OCSP запросов (директива в nginx ssl_trusted_certificate )
cat startssl_ca-sha2.pem startcom_sub.class1.server.sha2.ca.pem startcom_aia-ca-sha2.pem > startssl-ca-certs.pem
# или
cat startssl_ca-sha2.pem startcom_sub.class1.server.sha2.ca.pem startcom_aia-ca-sha2.pem startcom_aia-sub-ca.pem > ca-certs.pem
# или просто так
cat startcom_sub.class1.server.sha2.ca.pem startssl_ca-sha2.pem > startssl-ca-certs.pem

# nginx.conf
ssl_trusted_certificate /etc/nginx/ssl/startssl-ca-certs.pem;
# Програмный raid массив
http://www.lissyara.su/articles/freebsd/tuning/software_raid1/

# Shared memory
ipcs -M

# сохранить пароль от ssh ключа в своем акаунте
ssh-add -K
# And to store the passphrase for a different key run:

ssh-add -K /path/to/private/key/file
# When prompted for your passphrase enter it and that is it.
# You will never need to run ssh-add nor enter your passphrase again.

$ xattr s.7z
com.apple.metadata:kMDItemWhereFroms
com.apple.quarantine
and use the -d option to delete one extended attribute:

$ xattr -d com.apple.quarantine s.7z
$ xattr s.7z
com.apple.metadata:kMDItemWhereFroms
you can also use the -c option to remove all extended attributes:

$ xattr -c s.7z
$ xattr s.7z

# редактирование юзверя
vipw

# создать много директорий сразу
mkdir /var/www/{adminka.example.com,adminka.example.com/htdocs,adminka.example.com/htdocs/{otherpass,listed}
# аналогична команде
mkdir /var/www/adminka.example.com
mkdir /var/www/adminka.example.com/htdocs
mkdir /var/www/adminka.example.com/htdocs/otherpass
mkdir /var/www/adminka.example.com/htdocs/listed

# переименовать быстро файл insurenn_ru —> insurenn_ru.conf
mv insurenn_ru{,.conf}

# скопировать все файлы из /lib/libnss_dns/*, /lib/libnss_files/*, /lib/libnss_compat/* —> /chroot/lib/
cp -a /lib/libnss_{dns,files,compat}* /chroot/lib/

# алтернативный DNS сервер google-public-dns-a.google.com (8.8.8.8)
// проверить и исправить ошибки на диске
fsck -fy /dev/ad1s1d

// открыть вторую консоль (вкладку)
# Alt+F2

// скопировать логи
application/logs/talklog/2011/02/*.txt

// перекодировать все файлы из cp1251 в utf-8
recode -f windows-1251..UTF-8 *.html

// http://www.freebsd.org.ru/how-to/w2w.html
// Под пользователем root выполняем серию из команды pax (по одной на каждую файловую систему), например:
# cd / ; pax -p eme -X -rw . /mnt/root
# cd /var; pax -p eme -X -rw . /mnt/var
# cd /usr; pax -p eme -X -rw . /mnt/usr

// статистика по винту + серийный номер
smartctl -i /dev/ad4

// найти рекурсивно все html файлы в папке fibo и перекодировать их в utf-8
find ./fibo -name «index.html» -size +2k -exec recode CP1251..UTF-8 {} \;

// Ищем все файлы окончивающиеся на .svn Теперь мы отдаем нужные файлы команде xargs, которая вызывает rm -Rf и в качестве параметров использует свой stdin построчно. Задача решена.
find . | grep -e ‘/.svn$’ | xargs rm -Rf

// Ищем файлы измененные 1 день назад, ошибки типа pemision denied отправляем в /dev/null
find ./ -mtime -1 -type f 2> /dev/null

// Поиск вируса на php http://habrahabr.ru/company/sprinthost/blog/125839/
// поиск base64 строки
find ./ -name ‘*.php’ | xargs grep -irE ‘[0-9a-zA-Z/]{80}’

// Найти в cp1251 текст и перекодировать его на лету в utf-8
find . -name ‘*.txt’ -print | xargs iconv -f cp1251 -t utf8 | grep жестокий_АнГеЛ

// wget нескольких файлов
xargs wget << EOF
«http://ajax.aspnetcdn.com/ajax/jquery.ui/1.11.1/themes/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png»
«http://ajax.aspnetcdn.com/ajax/jquery.ui/1.11.1/themes/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png»
«http://ajax.aspnetcdn.com/ajax/jquery.ui/1.11.1/themes/start/images/ui-bg_glass_45_0078ae_1x400.png»
«http://ajax.aspnetcdn.com/ajax/jquery.ui/1.11.1/themes/start/images/ui-bg_glass_75_79c9ec_1x400.png»
EOF

// отправить текущий процесс в фон
Ctrl-Z
#bg
// Вернуть процесс из фона
#jobs
#fg <id_job>

пишешь под рутом команду vtysh
[20.07.2010 23:50:00] Игорь Quake: потом пишешь show ip bgp
[20.07.2010 23:50:07] Игорь Quake: там видны маршруты загруженные
[20.07.2010 23:50:15] Игорь Quake: show ip bgp neighbor 95.79.29.11
[20.07.2010 23:50:19] Игорь Quake: сразу показывает инфо
[20.07.2010 23:50:46] Игорь Quake: router.newnn.ru# show ip bgp neighbor 95.79.29.11

# Текущие маршруты
netstat -rn

# Что слушает сервер
netstat -an -f inet | grep LISTEN
sockstat -l | grep sshd
sudo netstat -nlp

# Что слушает процесс php
lsof -Pni4 | grep LISTEN | grep php

# Показать топ программ использующих интернет, сортированные по типу и протоколу соединений
sudo lsof -P -i -n | awk ‘{print $1,$5,$8}’ | tail -n +2 | uniq -c | sort -nr

# Топ программ укоторых больше всего открыто файловых десктрипторов
sudo lsof | awk ‘{print $1,$2}’ | tail -n +2 | sort | uniq -c | sort -nr

# Топ директорий в которых больше всего файлов
find / -type d | ( while read A; do B=ls -l "$A" 2> /dev/null | wc -l; echo $B $A; done) | sort -n
# Посмотреть MX записи домена
nslookup -q=mx sendmail.ru.

// Удаление зависших процессов mysql
$ mysql -u USER -p
show processlist;
Узнать идентификатор тяжелого запроса.
kill query 12345;
где 12345 заменить на идентификатор запроса.

// Сколько свободного места в папке
du -sh foldername

# netstat -tap | grep memcached

# http://www.freebsd.org/doc/ru/books/handbook/book.html
# http://hottab.ru/hosting/eaccelerator-i-freebsd-can-not-create-shared-memory-area/
# Посмотреть текущее значение параметра SHMMAX на Вашей системе можно используя команду ipcs.
serv# ipcs -M
shminfo:
shmmax: 33554432 (max shared memory segment size)
shmmin: 1 (min shared memory segment size)
shmmni: 192 (max number of shared memory identifiers)
shmseg: 128 (max shared memory segments per process)
shmall: 8192 (max amount of shared memory in pages)

# по мотивам http://www.lcnsoft.ru/index.php/Primery-ispol-zovaniya-tcpdump.html
# Показать все данные + HEX + ACSI на интерфейсе msk0, если запрос идет с или на 212.24.48.146
# -w output.txt записать в файл output.txt, -r output.txt — считать из файла
# -s 0 все пакеты как один
# -n не преобразовать ip в хосты, и порты в их имена
# -X записывать пакет со всем содержимым
tcpdump -n -X -s 0 -i msk0 src host 212.24.48.146 or dst host 212.24.48.146

# показать все пакеты входящие на eth1 пакеты по RTP протоколу в сеть 10.99.1.0/24
tcpdump -n -nn -i eth1 proto 4 and net 10.99.1.0/24

# показать цепочку сработавших правил
iptables -t mangle -L -nv

# Подсчет количества соединений с одного IP
netstat -aS | grep «213.219.245.111.http» | awk ‘{print $5}’ | cut -d’.’ -f1,2,3,4 | sort | uniq -c | sort -nr

# Узнать номер интерфейса по IP
ip a show to 10.99.1.1 | grep -v ‘inet’ | awk ‘{print $1}’ | cut -d ‘:’ -f1

# Посмотреть кто засирает внешний канал в локалке кроме роутера 🙂
trafshow -n -i re1 ‘dst net 192.168.1.0/24 and not 192.168.1.100/32’

# DNS записи — посмотреть все dns записи домена
dig @ns3.fastvps.ru any zz-33.ru

#/usr/ports/net/wireshark программа анализатор трафика

// Отправить письмо mail с атачем из консоли
$ echo «Смотри вложение» | mutt -x -s «метод 3» -a image.jpg sombeody@somewhere.net
Проблемное приложение можно отловить с помощью
Полученный вывод предоставит список процессов, а также нужную информацию: потребление процессора, памяти, состояние
# ps axfu

watermark
composite -gravity southeast -dissolve 75 $WATERMARK «${ GET_DIR}/*.png» «${TARGET_DIR}/*.png»

# netstat -n | awk ‘/^tcp/ {t[$NF]++}END{for(state in t){print state, t[state]}}’
TIME_WAIT 8z
ESTABLISHED 118222

# Бекап и передача файлов между серверами на лету
# На втором сервере запускается команда, которая будет принимать поток данных и передавать его на STDIN в tar (опция ‘-’):
server2$ nc -l 12345 | tar xvzf —

# На первом сервере запускается процесс создания архива с выдачей разультата в STDOUT, который передаётся через nc на на второй сервер, где tar уже приготовлен к приёму потока данных:
server1$ tar cvzf — /home/user/directory | nc host_server2 12345

# Таким способом мне удалось перелить без остановки работы сервисов на другой сервер
# таблицу размером в 60Gb и 400 млн строк где то за 12 часов.

# перелить базу данных на другой сервер
mysqldump -h host1 db users —single-transaction -ecQ | pv | mysql -h host2
# или так
mysqldump —opt -Q -h localhost -u root —databases gelios52 —add-drop-table —single-transaction -ecQ | pv | mysql -u root
# Извлечь архив .tar.lzma
lzma -dc mc-4.7.5.tar.lzma | tar -xvf —

# создать tar архив показывая процесс
tar cvzf zend.tar.gz Zend/

# распаковать из архива папку
tar xvzf zend.tar.gz ./Zend

# распаковать в папку
tar -xzf archive.tar.gz -C myfolder
# создать архив файлов которые были изменены 1 день назад
find ./ -mtime -1 -type f -print0 | tar c —null -T — > 52realty_22072012.tar
Дополнение:Как заметил в комментариях Alexey, упаковать найденные find файлы можно и используя tar.
В этом случае используется опции tar -T (читать список файлов из файла) и —null (имена файлов разделены нулевым байтом). Поясняю на примере, создание зашифрованного архива:
$ find . условия поиска -print0 | tar c —null -T — | gpg -c -a > файл_с_архивом.tar.gpg
и распаковка:
$ gpg -d файл_с_архивом.tar.gpg | tar x

# В общем, дело вкуса.

# ищет все файлы .jpg, сортирует и выводит в html теге img src
find images/screenshot/ -name «*.jpg» -printf ‘<img src=»%p» alt=»» />\n’ | sort

# ище везде кроме папки upload, bitrix/cache и bitrix/managed_cache
find ./ \( -path ./upload -o -path ./bitrix/cache -o -path ./bitrix/managed_cache \) -prune -o -print

# копировать локальный файл на удаленный сервер
scp SourceFile user@host:/directory/TargetFile
# сделать архив к себе с удаленного сервера папку, к которой права есть только через su root
# интерпретатор попросит ввести пароль 2 раза, архивация произойдет через поток stderr, который на выходе мы и поймаем tar’ом =)
# не разобрался как убрать из arc.tar первую строку tar: removing leading ‘/’ from member names, там старый tar не поддерживает опцию -P
ssh -p 8022 user@192.168.29.218 -C ‘su root -c «tar cf — /mnt/rw 1>&2″‘ 2> arc.tar && cat arc.tar | sed ‘1d’ | tar xfv —
// benchmark
[root@m9-vdnh /]# siege -c 1 -b -t 1m http://news.m9-vdnh.newnn.ru/ >/dev/null
Recently I experienced following error:
$ screen -r
Cannot open your terminal ‘/dev/pts/0’ — please check.
After searching for solution I found several instructing to change permissions etc.
But different solution, almost “hack” is the one I like.
Before starting screen type:
script /dev/null
And after that you can type:
screen -r

# ddos log
tail -f /home/sites/logs/access.nginx.log | awk ‘{print $1,$3,$5,$6,$7,$8,$12}’

# mysql cron queries
mysql -u newnn -p -D newnn_blog -e «DELETE FROM blog_themes WHERE id_user=40367;»

# сделать dump базы данных database_name в файл filename.sql, username — имя пользователя к базе данных, dump которой вы хотите сделать.
mysqldump —opt -Q -u username -ppassword database_name > filename.sql

# сделать дамп таблицы table1
mysqldump —opt -Q -u username -ppassword —databases database_name —tables table1 table2> filename.sql

# сделать dump базы в фоне
mysqldump —opt -Q -u username -ppassword —databases database_name 2> /dev/null > database_name.sql &

# Сделать дамп базы MyIsam без блокировки таблиц и таблицы большого объема
mysqldump —opt -Q —lock-tables —lock-all-table —quick —skip-comments -u root —databases tixen > tixen.sql

# Сделать дамп определенных таблиц и запаковать в gzip
mysqldump —opt -Q —lock-tables —lock-all-table —quick —skip-comments -u root —databases tixen —tables table1 table2 | gzip > dump.sql.gz

# Распаковать gz дамп и загрузить в БД
zcat tixen.sql.gz | mysql -u root -D tixen

# сделать dump базы к себе с удаленной машины
ssh publicis@live.renault.ru ‘mysqldump —opt -Q -u user -ppassword db_name —single-transaction -ecQ’ > filename.sql

# распаковать dump из файла filename.sql в базу данных database_name, username — имя пользователя к базе данных, в которую вы хотите распаковать dump.
mysql -u username -ppassword database_name < filename.sql

# Сделать дамп SELECT запроса
mysql -u root tixen -e «CREATE TABLE Traffic1 select * from tixen.Traffic where start_time >= ‘2014-11-01 00:00:00’ AND start_time <= ‘2014-11-31 23:59:59’;»
mysqldump —opt -Q —lock-tables —lock-all-table —quick —skip-comments -u root —databases tixen —tables Traffic1 | gzip > Traffic1.sql.gz

# применить кучу sql файлов в директории по очереди и импортировать их в базу
find *.sql -type f -print | xargs -n 1 cat | mysql -f -u root -D kmut2

# тоже самое но нажимать enter перед каждым импортом sql файла
for patch in ls | sort; do echo «— $patch —«; read; cat $patch | mysql -f -u root tixen; echo «— end patch —«; done;

# вывод из директории все имена файлов
for patch in ls | sort; do echo «$patch»; done;
# выбрать из всех логов первую строчку и вывести уникальные ip из нее
find /var/log/nginx/ -type f -mtime -1 -print | xargs -n 1 head -n 1 | awk ‘{print $1}’ | uniq -c

# найти файлы .git_mark и удалить их из git (git rm)
find . | grep -e ‘/.git-mark$’ | xargs git rm -rf

# конветировать число в двоичную систему
echo ‘obase=2;255’ | bc
# 11111111
# или так
printf «obase=2;%d\n» 255 | bc
# а теперь через xargs в потоке
, считываем из файлы сортируем и конвертируем
cat nfUtilTosed.txt | tr -d » » | sort -n | uniq | xargs -I ^ printf «$1 obase=2;%d\n» ^ | bc

# работа с базой database_name через командную строку. В этом режиме можно выполнять команды MySQL. Обратите внимание на то, что команда обязательно должна заканчиваться символом «;», иначе выполнена она не будет.
mysql -u username -ppassword database_name

# Обновление timezone в mysql
mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -u root -p mysql
#или
mysql_tzinfo_to_sql /usr/share/zoneinfo/ > mysql_tzinfo.sql
mysql -u root -p mysql < mysql_tzinfo.sql

# добавить юзера
adduser

# addgroup
pw groupadd admin # FreeBSD создать группу, используя утилиту pw
pw groupmod admin -m newmember # FreeBSD добавить нового участника в группу
pw useradd colin -c «Colin Barschel» -g admin -m -s /bin/tcsh # FreeBSD создать пользователя (утилита pw)
pw userdel colin; pw groupdel admin # FreeBSD удалить пользователя и группу (утилита pw)

# Добавить юзера в группу
usermod -G {имя группы} {имя нового пользователя}

# редактирование юзерей
vipw

# редактирование групп
ee /etc/group

# запускать команду в конкретном процессоре
cd ~wwwchat && xargs -P 2 -J /bin/pax -p eme -rw . /backup/chat.newnn.ru

# статус жетских дисков
iostat

# виртуальная память
vmstat

# запись демки в screen и проигрывание
# Для того чтобы включить запись нужно нажать в запущенном screen-е Ctrl-a H,
# а для завершения записи достаточно повторно нажать данное сочетание клавиш.
# Screen запишет все в файл screenlog.n, где n — целое число соответствующее номеру окна Screen.

time=0.1
rows=wc -l screenlog.1 | awk '{print $1}'
for i in seq 1 $rows; do head -$i screenlog.1 | tail -1; sleep $time; done ;
reset

# слежение за активностю окна в screen
Ctrl-a M включить
Ctrl-a _ выключить

# Показать кто приконнектился к ssh (IP)
lsof -ni | grep ssh

# какие библиотеки требуются для запуска бинарного скрипта
ldd /home/user/check_http

# SED После этого меняем порт у всех ранее созданных виртуальных хостов
sed -ie ‘s/YOUR-IP:80/YOUR-IP:82/g’ /etc/apache2/sites-available/*.vhost
mkdir /root/apache2_vhost_backup/
mv /etc/apache2/sites-available/*.vhoste /root/apache2_vhost_backup/

# проверить на вирусы linux
Ну сканированием clamscan /
Или как подсказали в комментариях chkrootkit

# синхронизировать папку
rsync -rlpcgo —delete-excluded -n -v src/ dst/ | /root/bin/backup/rsync_copy.php src/ | tar -cf test.tar -T —

# синхроинизиовать по ssh с удаленной машиной
rsync -av -e ssh —delete root@89.208.146.134:/home/gelios52/ /home/m9_vdnh/home/gelios52/

mergemaster -iFU не нажимать > 9000 раз кнопочку i для установки файлов конфигов в которых сменилась только строка с версией cvs.

В практически любой системе мониторинга (проверено на Nagios, Zabbix, Remstats, Ganglia, Zenoss — с трудом представляю систему, где этого не было бы) есть возможность выполнить внешнюю программу и результат ее выполнения (exit status, если мы собираем данные «сломалось-нет» или вывод в stdout) зарегистрировать как значение некоторого параметра в мониторинге.

mysql -u netload -pqNnrCwSJGd3sw7PH -D netload -e «SELECT CONCAT(CHAR(’34’),INET_NTOA(begin_ip)) as begin_ip, INET_NTOA(end_ip) as end_ip, begin_ip, CONCAT(end_ip, ‘ RU_NN Russia_Nizhniy_Novgorod’, CHAR(’34’)) as end_ip FROM net_ru_2 WHERE city_id = 41627 LIMIT 100″ | awk ‘{print $1, $2, $3, $4, $5, $6}’ | sed ‘s/ /\»,\»/g’ > geo_net_ru_2.txt
MYSQL хранимая функция для преобразования IP_FROM — IP_TO -> в ip/mask
CREATE FUNCTION deaggregate_ip_range(begin_ip BIGINT(20), end_ip BIGINT(20)) RETURNS varchar(20) CHARSET utf8
DETERMINISTIC
BEGIN

DECLARE thirtytwobits BIGINT(20);
DECLARE base BIGINT(20);
DECLARE step INT;
DECLARE flag_stop TINYINT(1);

SET thirtytwobits=4294967295;
SET base=begin_ip;
SET flag_stop = 0;
WHILE(base <= end_ip) DO
SET step=0;
WHILE (!flag_stop AND (base | (1 << step)) != base) DO
IF ((base | (((~0) & thirtytwobits) >> (31-step))) > end_ip) THEN
SET flag_stop = 1;
END IF;
IF (!flag_stop) THEN
SET step = step + 1;
END IF;
END WHILE;
RETURN CONCAT(INET_NTOA(base), «/», 32-step);
SET base = base + (1 << step);
END WHILE;

RETURN 0;

END//
SELECT prefix2mask(SUBSTRING(ipmask, LOCATE(‘/’, ipmask) + 1)) FROM net_city_ip WHERE 1

UPDATE net_country_ip SET network = INET_ATON(SUBSTRING(network2, LOCATE(‘/’, network2) + 1))

SELECT INET_ATON(prefix2mask(SUBSTRING(network2, LOCATE(‘/’, network2) + 1))) FROM net_country_ip

SELECT INET_ATON(SUBSTRING(network2, 1, LOCATE(‘/’, network2) — 1)) FROM net_country_ip

// преобразовать dbf в mysql
#mydbf2mysql -I —insert-pool 100 -u gelios52 -U /tmp/mysql.sock -P q2dFENMejCvLy64V -D gelios52 -S NAME,SOCR,CODE,INDEX,GNINMB,UNO,OCATD,STATUS -F NAME,SOCR,CODE,INDEX,GNINMB,UNO,OCATD,STATUS -f KLADR.DBF -T KLADR__KLADR
# Настройка почтовика postfix и dkim
http://www.prado.it/2012/04/26/how-to-run-postfix-with-opendkim-on-freebsd-9-0/

/etc/aliases — перенаправление локальной почты на внешку
postalias /etc/aliases — применение изменений

# gpg -c file # Зашифровать файл по паролю
# gpg file.gpg # Расшифровать файл ( -o другой файл)

в Midnight Commander-е: в нем длЯ выделениЯ файлов можно воспользоватьсЯ сочитанием клавиш Ctrl+T.
# браузер lynx запуск с прокси
http_proxy=http://127.0.0.1:3128 lynx -cookie_file /root/cookies.txt -cookie_save_file /root/cookies.txt -accept_all_cookies «http://market.yandex.ru»

# интерператор js в консоле
fantomjs index.html main.js

# установка rhodecode
mkdir ~/rhodecode && cd ~/rhodecode
curl -O https://legacy.rhodecode.com/dl/rhodecode-installer.py
sudo python rhodecode-installer.py
# сравнений версий в debian
if dpkg —compare-versions «1.0.2-67» lt «1.0.2-68»; then echo 1; fi;

# если приатачено 2 скрина
# How do you detach the 2nd screen from within another screen? http://unix.stackexchange.com/questions/29140/how-do-you-detach-the-2nd-screen-from-within-another-screen
# Выходим из второго
ctrl-a a d
# Вот так удалось удалить нахрен вирус который самозапускался каждые 4 сек из папки /boot
# смотрим строковые значение в бинарнике
strings /boot/имя_файла

# смотрим что делает процесс
strace -p номер процесса

# смотрим что делает команда
strace -f php /usr/share/tixen/batch/day-payments.php 2015-02-01 2015-02-28 2

# если процесс падает в Segmentation fault, то
ulimit -c 65000
получаем core файл
gdb -c core /usr/bin/php
# видим stack trace на чем процесс застопорился
bc
# убиваем все процессы размером 1504 байта в %Mem лежащие в папке /boot/
ps auxfwww | grep 1504 | grep -v grep | awk ‘{print $2}’ | xargs kill -9 && rm /boot/*

# далее чистим все дерьмо что было изменено за последнии 10 мин
find /etc/ -cmin -10

# а так же файл
rm /lib/udev/udev

# mac os x открыть терминал COM порта на скорости 38400
screen /dev/cu.PL2303-00001014 38400

# показать счетчики по таблицам
iptables -t mangle -L -nv
; очистить счетчики
iptables -t mangle -Z

# multine line read in bash
while read -r line
do
echo «$line»
done < <(jobs)

#To read a multiline variable, a simple way is:
printf %s «$var» | while IFS= read -r line
do
echo «$line»
done

# сравнение твоего конфига с дефолтным, сразу покажет каких строчек не хватает или какие надо поменять
diff -d etc/kmut2/kmut2.conf.sample etc/kmut2/kmut2.conf
# Массовое удаление таблиц из списка

SELECT CONCAT(‘DROP TABLE ‘, TABLE_NAME , ‘;’)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA=’akadem10ru’
AND TABLE_NAME IN (‘Table1’, ‘Table2’)
# Массовое перемещение найденных файлов
find -type f -exec cp -f {} ~/ceramica-elite.ru/public_html/published/publicdata/CERAMICADATA/attachments/SC/products_pictures/ \;
# восстанавливает все удаленные файлы из git’a
git ls-files -d | xargs git checkout —
# восстанавливает вообще все файлы измененные и удаленные
git checkout — ‘*’
# узнать IP адрес и порт с которого зашел на ssh
echo $SSH_CONNECTION

# генерация конфига symfony БД из mysql
app/console doctrine:mapping:import NatKingcallerLkBundle yml

# генерация всех моделей из БД symfony 2
app/console doctrine:generate:entities NatKingcallerLkBundle —path=src/

# разбан iptables для fail2ban
iptables -L fail2ban-ssh
# выведет список банов
# потом нужный удалить (вместо № — число из предыдущего списка)
iptables -D fail2ban-ssh №
# настройка DKIM
mkdir /etc/postfix/dkim/kingcaller.com/
opendkim-genkey -D /etc/postfix/dkim/kingcaller.com/ -d kingcaller.com -s default
chown -R opendkim:opendkim /etc/postfix/dkim/kingcaller.com/
nano /etc/opendkim.conf
nano /etc/postfix/dkim/KeyTable
nano /etc/postfix/dkim/SigningTable
nano /etc/postfix/dkim/kingcaller.com/default.private
nano /etc/postfix/dkim/kingcaller.com/default.txt
/etc/init.d/postfix reload

Опубликовано в Unix администрирование

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*