Cоздать SOCKS 5 прокси довольно просто. Достаточно выполнить команду по следующей схеме:
ssh -f -C2qTnN -D <порт> <удаленный_пользователь>@<удаленный_сервер>
Где
-f
Запросит ssh перейти в фоновый режим только перед выполнением команды.
-C
Включит сжатие всех данных (включая stdin, stdout, stderr и данные для перенаправленных Х11 и TCP/IP соединений).
-2
Принуждает ssh использовать только протокол версии 2.
-q
Тихий режим. Подавляет все предупреждения и диагностические сообщения. Будут отображены только фатальные ошибки.
-T
Отменить переназначение терминала.
-n
Перенаправляет стандартный ввод из /dev/null (фактически, предотвращает чтение из стандартного ввода).
-N
Не выполнять удаленную команду.
-D
[локальный IP : ] порт
Читати далі…
Как известно, команда удаления всех данных рекурсивно вниз без задавания лишних вопросов для заданной папки в Линукс выглядит как rm -Rf
.
И тут возникает вопрос:
“А что будет если такой папкой будет корневой каталог системы (/
)?”
Читати далі…
Сегодня я расскажу как можно вести лог скриптов, что отправляют почту методами PHP.
Это удобно, если у вас на сервере поселился спаммер и вы не знаете где его искать, т.к. сами пути запускающих скриптов по-умолчанию не падают в /var/log/syslog
или в /var/log/mail.log
. Читати далі…
Для этих целей существует отличная программа convmv.
Ставится она из репозитория довольно просто:
sudo apt-get install convmv
После чего вам просто необходимо указать папку, в которой необходимо совершить переименование файлов из одной кодировке в другую.
Например, мне нужно переименовать файлы из KOI8-R в UTF-8 рекурсивно вниз.
Делается это так:
convmv -r --notest -f koi8-r -t utf-8 Folder/
Опция --notest
отвечает за переименование.
Т.е. без этой опции вы просто сделаете тест и посмотрите как файлы будут “выглядеть” в нужной кодировке.
Удачи.
Сегодня я расскажу как можно работать с базой данных PostgreSQL с помощью nginx’a без application’a (например, PHP или любого другого). Т.е. эта технология абсолютно не зависит от языка, на котором сделан сайт/проект/система.
Мы будем использовать мощь PostgreSQL в хранимых процедурах (stored procedures/functions), а кэшировать с помощью быстрого Redis.
Читати далі…
Иногда возникает необходимость определить версию Ubuntu. Делается это с помощью команды lsb_release
, что предназначена для вывода информации о текущей версии дистрибутива Ubuntu.
lsb_release -a
Что для версии Ubuntu 13.04 выведет следующее:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 13.04
Release: 13.04
Codename: raring
Существует отличная консольная утилита для отображения информации о количестве переданной и принятой информацией по каждому сетевому интерфейсу с разбивкой по датам и визуальным отображением в как в консольном, так и графическом режимах. Имя этой утилиты — vnstat.
Читати далі…
Примером хорошего тона и здравого смысла является периодическая проверка диска на битые сектора (бэд-сектора, badblocks) и обычная проверка диска на ошибки записи и т.п.
Разберёмся что такое битые сектора.
Любимая Википедия говорит следующее:
Бэд-сектор, Повреждённый сектор — сбойный (не читающийся) или ненадежный сектор диска; кластер, содержащий сбойные сектора, или кластер помеченный таковым в структурах файловой системы операционной системой.
Следовательно, если в битом секторе были данные, то их ещё возможно восстановить, пока битых секторов не стало слишком много для конкретного файла.
Читати далі…
Я создал небольшую шпаргалку соответствий команд систем управления версиями SVN/Subversion и Git. Пользуйтесь! 😉
svnadmin create repo
git init
git add .
svn import file://repo
git commit
svn diff -rrev path
git diff rev path
svn revert path
git checkout path
svn add file
git add file
svn commit
git commit -a
git push remote
svn blame file
git blame file
svn cat url
git show rev:path/to/file
svn list url
git show rev:path/to/directory
svn log -rrev url
svn diff -crev url
git show rev
svn copy https://example.com/svn/trunk
https://example.com/svn/tags/name
git tag -a name
svn list https://example.com/svn/tags/
git tag -l
svn log –limit 1 https://example.com/svn/tags/tag
git show tag
svn copy https://example.com/svn/trunk https://example.com/svn/branches/branch
git branch branch
svn switch https://example.com/svn/branches/branch
git checkout branch
svn list https://example.com/svn/branches/
git branch
svn update -r rev
git checkout rev
svn update
git checkout prevbranch
svn merge -r rev:HEAD https://example.com/svn/branches/branch
git merge branch
svn merge -c rev url
git cherry-pick rev
svn checkout url
git clone url
svn switch url
git checkout –track
-b branch origin/branch
Сегодня я хочу вам рассказать о партиционировании больших таблиц в моей любимой PostgreSQL.
Итак, начнём с определения:
Партиционирование (partitioning) — это разбиение больших таблиц на логические части по выбранным критериям. Партиционированные или секционированные таблицы призваны улучшить производительность и управляемость базами данных.
Вроде понятно. Теперь идём дальше. Как же разбить таблицу на партиции или секции?
В PostgreSQL эта процедура потребует небольших усилий, но результатом вы будете довольны 🙂
Читати далі…