bash

How to reset USB port remotely

Розділи: 


#!/bin/bash
usb=`dmesg | grep "New USB device found, idVendor=1058, idProduct=0820"|cut -f1 -d':'| awk '{print $4}' | tail -1`
sudo sh -c "echo $usb > /sys/bus/usb/drivers/usb/unbind"
sudo sh -c "echo $usb > /sys/bus/usb/drivers/usb/bind"

Замінюйте параметри grep на те що вам потрібно.
В моєму випадку результат має бути ось такий:

# dmesg | grep "New USB device found, idVendor=1058, idProduct=0820"|cut -f1 -d':'| awk '{print $4}' | tail -1

1-6

Emergency reboot and poweroff

Розділи: 

Іноді трапляються випадки коли використання стандартних reboot/poweroff не можливе і нам потрібно з'імітувати натискання reset або power.

Отже, якщо "нічого не працює" - перезавантажуємо сервер:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger

Те саме, тільки перед ребутом синхронізуємо фс:
echo 1 > /proc/sys/kernel/sysrq
echo s > /proc/sysrq-trigger
echo b > /proc/sysrq-trigger

А ця команда вимкне сервер:
echo 1 > /proc/sys/kernel/sysrq
echo о > /proc/sysrq-trigger

Видаляємо порожні рядки і коментарі з конфігураційного файлу за допомогою sed

Розділи: 

Буває так шо відкриєш конфіг, а там стільки всього...

Отже, на допомогу прийде така конструкція:

sed '/ *#/d; /^ *$/d' filename

Ось і знадобився мені zgrep :)

Розділи: 

Привіт всім!
Довго не писав у свій блог, але сьогодні знадобилось пошукати інфу у журналах поштового релея, а саме, чи надходили листи на адресу "[email protected]"

Йдемо до /var/log:

#cd /var/log

Ну зрозуміло, що дивимось в maillog:

#grep "[email protected]" maillog

Нічого немає :)
Залишилось перевірити кілька десятків архивів .gz
Для цього запускаємо наступну "конструкцію":

#for i in maillog.*.gz; do echo "${i}:"; zgrep "[email protected]" "${i}";echo ""; done

Дата народження по ІПН

Розділи: 

Для того, щоб визначити дату народження по ІПН нам достатньо знати ІПН або тількі перші п’ять цифр.
Команда date в Linux працює з датами тількі з 01 янв 1902, тому треба додати трошки шаманства.
1900 - високосний рік в MS Excel хоча й невисокосний за офіційним календарем.
1901 - невисокосний рік.
Отже треба використати магію :) (MAGIC)

#!/bin/bash
MAGIC=$(( 365+1+365 ))
echo "Введіть ІПН або перші п’ять цифр:"
read INPUT
#INN=`echo $INPUT | cut -c1-5`
INN=`echo $INPUT | grep -Eo '^.{5}'`
#DATE=$( date --date "1902-01-01 + $(( $INN - $MAGIC )) days" +%F )

Массовая обработка фотографий

В последнее время часто приходится уменьшать большое количество фоток с фотоаппарата.
Способ не претендует на новизну, но прост как три копейки.
1) Если в системе не установлен imagemagick, то ставим его (в зависимости от дистрибутива ОС)

2) Идем в папку с кучей необраотанных фотографий
cd ~/photos

3) Создаем здесь папку для обработанных фотографий
mkdir resized

4) Запускаем

ping + timestamp

Способов, вероятно, масса, но я приведу два.
С датой в конце:
# ping -i5 ya.ru | while read n; do echo -ne "$n\t"; date +"%d-%m-%Y %H:%M:%S"; done
PING ya.ru (77.88.21.3) 56(84) bytes of data. 10-02-2012 09:09:45
64 bytes from www.yandex.ru (77.88.21.3): icmp_seq=1 ttl=55 time=20.5 ms 10-02-2012 09:09:45
64 bytes from www.yandex.ru (77.88.21.3): icmp_seq=2 ttl=55 time=20.5 ms 10-02-2012 09:09:50
64 bytes from www.yandex.ru (77.88.21.3): icmp_seq=3 ttl=55 time=20.6 ms 10-02-2012 09:09:55

С датой вначале: