Показаны сообщения с ярлыком terminal. Показать все сообщения
Показаны сообщения с ярлыком terminal. Показать все сообщения

пятница, 27 сентября 2013 г.

Широковещательное сообщение в открытые терминальные сессии Linux

Понадобилось мне давече разослать на все терминалы на удаленной машине текстовое сообщение (я преследовал свои одному мне изветные цели).

Делается это следующим образом:

1. Заходим по ssh на удаленную тачку
2. Пишем в открытом терминале:
echo -e "ЦЕЛЕВОЕ_СООБЩЕНИЕ\n" | wall


Вуа-ля, все открытые терминал внезапно получат следующий месседж:

Широковещательное сообщение от username@hostname
(/dev/pts/6) at 18:50 ...
ВАШЕ_ЦЕЛЕВОЕ_СООБЩЕНИЕ


Если же вы хотите отправить сообщение только на определенный терминал, то:

1. who #даст перечень всех залогиненых (включая и удаленных) пользователей
    cardinal tty7         2013-09-27 15:39 (:0)
    git_man tty8         2013-09-26 18:46 (:0)


2. echo -e "ЦЕЛЕВОЕ_СООБЩЕНИЕ\n" >/dev/tty7 #отошлет сообщение пользователю cardinal

На этом все.

четверг, 8 ноября 2012 г.

Писк спикером при выполнении ping ubuntu

Недавно понадобилось мне обязательно дождаться момента, когда в сети появится одна машинка, для чего я поставил пинг и сел ждать. После минуты вмыка на "destination is unreachable" я решил сделать так, чтобы при появлении ответных пакетов мой "пылесос" просвистел мне об этом в системный спикер. Погуглив, нашел отличный вариант, и немного его модернизировал. Вот, что получилось:

Установим необходимый пакет:

sudo apt-get install beep

Разблокируем скорее всего заблокированный встроенный бипер:

sudo nano /etc/modprobe.d/blacklist.conf
Ищем в файле строчку blacklist pcspkr и каментим ее, сохранеяем файл.

Затем пишем:

sudo modprobe -r pcspkr && modprobe pcspkr

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

beep

Если ищит - все ок, значит копипастим код ниже:


#to beep with pcspcr when ping
beepwhenup ()
{
echo 'Enter host you want to ping:';
read PHOST;
if [[ "$PHOST" == "" ]]; then
exit;
fi;
while true;
do ping -c1 -W2 $PHOST 2>&1 >/dev/null;
if [[ "$?" == "0" ]]; then
for j in $(seq 1 4); do beep -f 3000 -l 200 -r 50 -d 200;
done;
ping -c1 $PHOST;
break;
fi;
done; 
}

Это все счастье мы записываем в конец ~.profile и выполняем:

cd ~/

. .profile

для того, чтобы команда beepwhenup попала в систему. Выполнять . .profile
нужно будет при каждой перезагрузке.

Теперь по команде beepwhenup терминал попросит у вас ввести IP пингуемого хоста, и будет ждать, а когда появится пинг - сообщит вам приятным попискиванием (частотой 3000, 50 раз, длительностью в 200 мс и интервалом в 200 мс).

Но!!! Стоит помнить, что спикер будет пищать И НЕ ЗАТКЕТСЯ, пока не будет выполнено все 50 писков.

Приятного пользования.