ssh в tmux настройки на стороне клиента

В прошлой статье я писал о том как можно сделать так, чтобы любая сессия вызывала подключение через tmux: подключалась к свободной сессии или создавала новую. Причём, настройка была на стороне сервера. Это было хорошо, кроме проблем с подключением через mc через ssh сессию и копированием через scp, которое тоже не работало.

Есть другой вариант: на стороне клиента в ~/.bashrc я определяю функцию, которая делает то же самое.

function t () { 
        ssh $1 -t "tmux attach-session -t \$(tmux ls | grep -v attached | head -n 1 | awk -F: '{print \$1}') || tmux new-session -s \$\$"
}

Напоминаю, что если вам надо выйти из сессии, то просто дать команду exit, а если просто отключиться — ctrl — b + d.

Список сессий и переключиться всегда можно посмотреть через ctrl — b + w

Список путей непустых файлов в архиве rar

Если уже я написал код для получения списка непустых файлов в архиве rar, то почему бы не оставить его здесь?

rar v /data3/rars/month-20141003232102.rar | sed '/%/!N;s/\n/ /' | awk '$2>0 {print $1}'

Основная идея в том, что rar vb blablabla.rar даёт красивый список, но в нём присутствуют и пустые файлы, что вводило меня в заблуждение. Сейчас не входят.

Mint 10 и bash history

После установки обнаружился неприятный глюк — не сохранялась история команд между сессиями. Моей эрудиции не хватило на то, что бы вспомнить где это включается-отключается. Гугль не помог. Я посмотрел на файл ~/.bash_history, а он оказался почему-то с рутовым доступом и по чтению, и по записи. Это потому, что первая команда была с sudo? Короче, грохнул я файл и всё заработало. Я собой горжусь.

Создание случайной коллекции песен на флешку в машину (часть 2)

Продолжая свои исследования в области записи на карточку памяти песен в случайной последовательности я ещё раз и ещё раз изучил что же такое xargs тут и вот тут . В результате был рождён скрипт совсем без наворотов:

$ rm -f /media/CARAUDIO/*; find /home/beliashou/Музы/music -type f | grep «^[^\»‘]*\.mp3» | sort -R | xargs -i cp {} /media/CARAUDIO

Вчера почему-то он вылетал с жалобой на какую-то одинарную ковычку, а сегодня на двух флешках отработал «на ура». В этой версии скрипта нет переживаний из-за совпадения имён файлов — совпадёт, тогда буду думать как переживать или как поставить флаг перезаписи без разговоров.

bash: в каком каталоге больше места?

Собственно, есть два или более путей. Надо выбрать тот, где места больше:

#RARDIR=»/mnt/data2/DominoBACKUP /data/DominoBACKUP»; s=0; for a in $RARDIR; do k=`df $a | awk ‘/
\// {print $4}’`; if [ $s -le $k ]; then s=$k; RARDIRMAX=$a; fi; done; echo $RARDIRMAX

/mnt/data2/DominoBACKUP

Я сделал качественной новый шаг в консоли линукса

Как-то раньше я пользовался командами в консоли линукса по одной. Ну разве что перенаправляя их в grep или less. Сегодня у меня сложилась ситуация, когда я потерял свой сервер. Ну… он установлен во временной среде и мне надо на нём выполнить кое-какие команды. Сам сервер отвечает, потому что zabbix его видит замечательно. Ах, да! Самое главное, что сервер получает адрес от DHCP и почему-то не отвечает по тому адресу к которому я уже привык. В прошлый раз в аналогичной ситуации я смотрел дома фильм, а сам руками набирал команду ssh 172.16.16.12, Enter, Ctrl-C , предыдущая команда, менял последний октет на единицу и снова. Я дошел до 36 и сервер нашелся. Сегодня мне стало лень выполнять эту процедуру ещё раз, поэтому я немного полазил в справочниках и придумал строку:

for i in `seq 0 255`; do echo $i, `curl 172.16.16.$i:22 —connect-timeout 2`; done 2>/dev/nul | grep SSH

Правда ничего не нашел… Где-то я сам себя перемудрил 🙂

Выполнение команд mysql из скрипта

В скрипте, который автоматизирует мою рутину, надо выполнить несколько команд mysql от имени root. Разумеется, что бы не вводить пароль по двадцать раз. Нашел я на одном из доставшихся в наследство мне серверов (Debian 4) скрипт с такими словами:

#/bin/bash
echo create database $1 default character set cp1251 collate cp1251_bin\;
echo create database $1 default character set cp1251 collate cp1251_bin\; |mysql -u root -p`</root/mysql.pass`
Мне как-то сразу показалось странным отсутствие ! в первой стороке. Но тем не менее, скрипт с удовольствием выдаёт ошибку mysql. А значит, система работает. Мне не понятно почему нет пробела после -p и вычисляемым выражением. Почему man mysql утверждает, что имя базы обязательно, а тут его нет, но факт остаётся фактом — это работает.
Когда я перенёс эту конструкцию на более родной мне сервер (Debian 5), то она там работать не стала. Заставил я работать только в виде
echo bla-bla\; |mysql —user=root —password=password
И мне это странно. А вам?

Конвертация музыки в формате wav в mp3 в нашей музыкальной коллекции.

У меня нет уверенности в том, что у меня в музыкальной коллекции реальные файлы типа WAV, потому что практика показывает, что они при этой конвертации не сжимаются. Но не суть важно. Важно то, что я решил их привести в однообразный с остальной коллекцией вид. Хотя бы для того, что бы громкость всем поставить одинаковую.
Решение о том как конвертировать wav в mp3 нашлось достаточно быстро. Читать далее

Ubuntu 9.10: скрипт удаления лишних строк из меню загрузки системы.

Знаете ли вы, что каждая строка с очередным старинным кернелом занимает 90 мегабайт на вашем диске? Если система ваша стабильна, то вам не смысла хранить старые ядра. Вот лично у меня дело на ноутбуке уже дошло до того, что пункта с виндой у меня в системе не видно, потому что весь экран занимают старые ядра. Разумеется, первая мысль — убрать лишные строчки из меню загрузки. Читать далее

Про написание скрипта: как я его писал и кого благодарю за это

Начал я написание скрипта с того, что пропустил восклицательный знак в строке #!/bin/bash

Далее я озадачился вопросом как мне добавить юзера с паролем. Для начала оказалось, что есть две разных комманды adduser и useradd. С разными параметрами. Вот тут нашлось описание как добавлять юзера сразу с паролем. Спасибо.

Вот тут написано как писать в файл в более удобном виде. Спасибо.