Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Шпаргалка собранная кровью, не раз меня выручала и выручает по сей день, пользуйтесь на здоровье:
- Команды 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 [email protected]
- Проблемное приложение можно отловить с помощью
- Полученный вывод предоставит список процессов, а также нужную информацию: потребление процессора, памяти, состояние
- # 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 [email protected] -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 [email protected] ‘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 [email protected]:/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
Add Comment
Please, Sign In to add comment