понедельник, 22 февраля 2010 г.

Надежное удаление с помощью shred

Надежно удалить файл можно с помощью команды shred:
shred -uzv ./topsecret

Команда сначала заполняет файл случайными данными. По умолчанию эта операция повторяется три раза.
-u - показывает, что файл нужно удалить
-z - заполняет файл нулями после случайных данных
-v - подробный вывод, вроде такого:
yuri@gentoobox ~ $ shred -uzv ./topsecret
shred: ./topsecret: проход 1/4 (random)...
shred: ./topsecret: проход 2/4 (random)...
shred: ./topsecret: проход 3/4 (random)...
shred: ./topsecret: проход 4/4 (000000)...
shred: ./topsecret: удаление
shred: ./topsecret: переименован в ./000000000
shred: ./000000000: переименован в ./00000000
shred: ./00000000: переименован в ./0000000
shred: ./0000000: переименован в ./000000
shred: ./000000: переименован в ./00000
shred: ./00000: переименован в ./0000
shred: ./0000: переименован в ./000
shred: ./000: переименован в ./00
shred: ./00: переименован в ./0
shred: ./topsecret: удален

четверг, 18 февраля 2010 г.

Скрипт подсчета параметра в DBF

Нужно суммировать количество записей с определенными параметрами в куче dbf. Сугубо для внутреннего использования.

Требуется пакет dbf из оверлея sunrise
portals.sh
#!/bin/bash

if [ -z $1 ]; then
number=$(kdialog --inputbox "Введи дату выхода газеты:" --title "Подсчет портальных объявлений")

else
number=$1
fi
if [ $number ]; then
MYMSG=""
NEED_DATE=$(echo $number|sed s/'\.'/'\\\.'/)
MYMSG=$(echo "Объявления с портала в газете от $number\n\n")
let count=0;
let a=0;
for i in $(find /net/anna/ad64/Int_Ed/ -regex '.*\ .[латные|ото].*'$NEED_DATE'.*[0-9]+\.bak$' -exec dbf '{}' \; |grep -o "AD2_FMT: [1-9][0-9]"| awk {'print $2'}|sort); do
if [ $a -ne $i ]; then
if [ $count != 0 ]; then
MYMSG=$(echo $MYMSG": "$count"\n");
fi
case $i in
10)
t="Выворотка"
;;
20)
t="Рамка"
;;
30)
t="Звездочка"
;;
40)
t="Точка"
;;
45)
t="Фото"
;;
54)
t="Жирное2"
;;
56)
t="Жирное3"
;;
*)
t="$i:"
;;
esac
MYMSG=$(echo $MYMSG$t)
let a=$i
let count=1;
else
let count=$count+1;
fi
done
MYMSG=$(echo $MYMSG": "$count"\n")
echo -e $MYMSG|kwrite --stdin
fi

Bluetooth в Gentoo

Имеется мобильный телефон без слота для карт памяти и без разъема для data-кабеля, но зато с bluetooth. Так же имеется bluetooth-адаптер D-Link DBT-120. Нужно перекинуть некоторые файлы в оба направления.

Прежде всего я добавил USE-флаг "bluetooth" в make.conf и поставил пересобираться всё, что можно. Пока идет процесс, включаю bluetooth в ядре (при условии что подсистема usb уже давно включена):
--- Networking support
<*> Bluetooth subsystem support --->
<*> L2CAP protocol support
<*> SCO links support
<*> RFCOMM protocol support
[*] RFCOMM TTY support
<*> BNEP protocol support
[*] Multicast filter support
[*] Protocol filter support
<*> HIDP protocol support
Bluetooth device drivers --->
<*> HCI USB driver
<*> HCI UART driver
[*] UART (H4) protocol support
[*] BCSP protocol support
[*] HCILL protocol support
<*> HCI BCM203x USB driver
<*> HCI BPA10x USB driver
<*> HCI BlueFRITZ! USB driver
<*> HCI VHCI (Virtual HCI device) driver

Для работы с bluetooth я установил kbluetooth.
После установки нового ядра подсоединяю адаптер в usb и начинаю перегонять файлы. Kbluetooth 0.4 еще очень сырая программа, однако всё файлы были переданы.

четверг, 11 февраля 2010 г.

Webcamera и Gentoo

Подключаю вебкамеру в Gentoo.

четверг, 4 февраля 2010 г.

Split, md5sum и DVD на 8.5 Gb

Для переноса большого файла (нужно было записать кое-что на DVD 8.5Gb, а мой привод не сумел это сделать) на различных носителях, начиная от DVD+RW 4.7Gb и заканчивая minisd на 1Gb, я воспользовался командой split:

среда, 3 февраля 2010 г.

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

Чтобы не пропустить выход последних выпусков различных сериалов, которые смотрит моё семейство, написал следующий скрипт:

понедельник, 1 февраля 2010 г.

Малоизвестные (мне) возможности bash

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

Трюк с использованием конструкции {часть_старого_имени,часть_нового_имени} при копировании или переносе файла я знал давно.