sshfs

На собеседовании встал вопрос монтирования директории удаленного сервера и тут я попал в просак. Ну что ж, исправляемся.

SSHFS (Secure SHell FileSystem) это файловая система для Linux (и других операционных систем, для которых существует реализация FUSE (Filesystem in Userspace), например Mac OS X), используемая для удаленного управления файлами по протоколу SSH (точнее, его расширению SFTP) таким образом, как будто они находятся на локальном компьютере. (Википедия)

Установим sshfs

в ubuntu/debian
sudo apt-get install sshfs
в Arch
sudo pacman -S sshfs

Монтирование
sshfs user@remotehost:/path/to/directory /local/path

Отмонтируем
fusermount -u /local/path

CIDR Расчет маски и диапазона ip

Бесклассовая адресация (англ. Classless Inter-Domain Routing, англ. CIDR) — метод IP-адресации, позволяющий гибко управлять пространством IP-адресов, не используя жёсткие рамки классовой адресации. Использование этого метода позволяет экономно использовать ограниченный ресурс IP-адресов, поскольку возможно применение различных масок подсетей к различным подсетям. (Википедия)

Итак, у нас есть запись, например, 192.168.200.0/19
Цифры после слеша от 32 до 24 отвечают за «четвертый» октет слева, от 23 до 16 — «третий» октет, от 15 до 8 — «второй», от 7 до 0 — «первый».
Поскольку 19 входит в третий октет, то его и считаем: 24 — 19 = 5.
То есть двойка в пятой степени 2^5 = 32.
Посчитаем маску. 256-32=224
Итого маска 255.255.224.0
Рассчитаем диапазон.
Запись «/19» означает, как мы уже посчитали выше, 2^5=32, т.е. шаг 32.
200/32=6.25 Найдем вилку, в которую попадает 200.
32*6=192, 32*7=224
Диапазон получился 192.168.192.0 — 192.168.223.255

Примеры
192.168.1.70/26
32-26=6
2^6=64
256-64=192
255.255.255.192
192.168.1.64 — 192.168.1.127

192.168.1.0/22
24-22=2
2^2=4
256-4=252
255.255.252.0
192.168.0.0 — 192.168.3.255

Автоматический бэкап PostgreSQL в Linux

О том как делать автоматические резервные копии в PostgreSQL рассказано в статье Automated Backup on Linux. Скрипты из этой статьи всем хороши, кроме того, что если их прописать в cron, то ничего бэкапиться не будет. А происходит так из-за того, что нигде не указывается пароль пользователя PostgreSQL от имени которого делается бэкап.
Как же их заставить работать?

ncdu статистика использования диска

Консольный аналог статистики использования диска kdusader-a и т.п. Простая и удобная утилита. IMHO придется по вкусу тем, кому недостаточно дефолтного du.
Понравилось возможность выводить информацию по определенным разделам.
sudo ncdu -x /

Утилита умеет удалять, пересчитывать, сортировать и прочее. Полная информация в man и shift+? в программе.

Лёгкая распаковка архивов из командной строки

Изредка требуется распаковать на сервере какой-нибудь архив ( tar.bz2, tar.gz, bz2, rar, tar, 7z и т.д. ). Так как это редкая операция то, естественно, запоминать программу и аргументы для каждого типа смысла нет, тем более что всегда есть Google, который можно спросить. Но каждый раз лезть в Google надоело, поэтому было найдено альтернативное решение.

Читать далее «Лёгкая распаковка архивов из командной строки»

Рекурсивное изменение прав доступа или владельца только у файлов или директорий

Если нужно изменить права на доступ или владельца только для файлов:

find . -type f -exec chmod 644 {} \;
find . -type f -exec chown :www-data {} \;

В первой строке всем файлам в текущей директории («.») устанавливаются права 644.

Вторая строка меняет группу у файлов в текущей директории на www-data.

Если нужно изменить права/владельца не в текущей директории, то вместо точки после команды find нужно указать полный путь.

Пример: 

find /home/user/private -type f -exec chmod 600 {} \;

Изменение прав доступа или владельца только у директорий:

find . -type d -exec chmod g+w {} \;
find . -type d -exec chown :www-data {} \;

В первой строке всем директориям в текущей директории даётся право на запись для группы.

Во второй строке  всем директориям в текущей директории устанавливается группа www-data.

Skype шум, дублирование голоса

Долго искал решение проблемы со скайпом. Наконец-то нашел работающий способ.

Создаем файл ~/.asoundrc и добавляем в него:

# .asoundrc to use skype at the same time as other audio apps like xmms
#
# Successfully tested on an IBM x40 with i810_audio using Linux 2.6.15 and
# Debian unstable with skype 1.2.0.18-API. No sound daemons (asound, esd, etc.)
# running. However, YMMV.
#
# For background, see:
#
# https://bugtrack.alsa-project.org/alsa-bug/view.php?id=1228
# https://bugtrack.alsa-project.org/alsa-bug/view.php?id=1224
#
# (C) 2006-06-03 Lorenzo Colitti - http://www.colitti.com/lorenzo/
# Licensed under the GPLv2 or later

pcm.skype {
type asym
playback.pcm "skypeout"
capture.pcm "skypein"
}

pcm.skypein {
# Convert from 8-bit unsigned mono (default format set by aoss when
# /dev/dsp is opened) to 16-bit signed stereo (expected by dsnoop)
#
# We can't just use a "plug" plugin because although the open will
# succeed, the buffer sizes will be wrong and we'll hear no sound at
# all.
type route
slave {
pcm "skypedsnoop"
format S16_LE
}
ttable {
0 {0 0.5}
1 {0 0.5}
}
}

pcm.skypeout {
# Just pass this on to the system dmix
type plug
slave {
pcm "dmix"
}
}

pcm.skypedsnoop {
type dsnoop
ipc_key 1133
slave {
# "Magic" buffer values to get skype audio to work
# If these are not set, opening /dev/dsp succeeds but no sound
# will be heard. According to the alsa developers this is due
# to skype abusing the OSS API.
pcm "hw:0,0"
period_size 256
periods 16
buffer_size 16384
}
bindings {
0 0
}
}

Затем ставим пакет alsa-oss. Перезапускаем alsa.

Запускаем скайп следующим образом:
ALSA_OSS_PCM_DEVICE="skype" aoss skype

Спасибо archlinux.org.ru. В очередной раз выручил.

Upd: Почему-то на следующий день скайп опять стал выдавать помехи. Решилось удалением скайпа и скачиванием версии 2.1