На данный момент сделать второю полную копию хранилища на
сервере PDC невозможно
– недостаточно места на разделе /mnt/bacula/ ( примонтирован по iSCSInas4free)
Для этого делается очистка баз от бэкапов:
1. меняемдатувфайле:
sudo vi /usr/local/bin/purge-db-and-files.sh
до какого числа очистить базу
DATEFROM=2015-02-12
изапускаемего
cd /usr/local/bin/
purge-db-and-files.sh
2. далее чистим хранилище /mnt/bacula/
эта папка (/mnt/bacula/) примонтирована по ISCSIс
сервера nas4Free
sudo rm -rf
/mnt/bacula/*_volume-*
если действительно хотим удалить все: sudorm -rf /mnt/bacula/*_volume-*
purge-db-and-files.sh
#!/bin/bash
DATEFROM=2016-12-26
BACKUPFOLDER="/mnt/bacula"
#GETLISTFROM="BCONSOLE"
GETLISTFROM="MYSQL"
# get list to prune
if [[ "${GETLISTFROM}" == "BCONSOLE" ]] ; then
DELETELIST=`echo -e "sqlquery\nselect VolumeName from Media where LastWritten < '${DATEFROM}' order by VolumeName;\n.\nexit" | bconsole | grep '^|' | grep -v ' VolumeName ' | sed -e 's/[ ]*|[ ]*//g'`
echo "Using bconsole"
elif [[ "${GETLISTFROM}" == "MYSQL" ]] ; then
DELETELIST=`mysql --database=bacula --column-names=FALSE -e "select VolumeName from Media where LastWritten < '${DATEFROM}' order by VolumeName;" | sed -e 's/[ ]*|[ ]*//g'`
echo "Using mysql"
fi
if [[ -z "${DELETELIST}" ]] ; then
echo "No records found earlier than ${DATEFROM}"
exit 1
fi
#echo -e "${DELETELIST}"
echo "${DELETELIST}"
echo
echo "WARNING: IT WILL DESTROY THAT FILES ON THE DISK"
echo "Are you sure you want to proceed?"
read -p 'Type YES if you really want to proceed: ' input
echo
if [[ ${input} != YES ]]; then
echo "Ok. Aborting."
exit 1
fi
НО что у меня объем хранилища 4ТБ, а объем данных более 2 ТБ. В итоге приходится чистить базу и запускать бэкап заново
Однажды после такой чистки получил ошибку:
Fatal error: Uncaught exception 'Zend_Exception' with message 'Fatal error: Can't connect to SQL server' in /var/www/webacula/html/index.php:178
Stack trace:
#0 {main}
thrown in /var/www/webacula/html/index.php on line 178
проблема с SQL server
Посте того, как сгорел мой "ноутбук", я вспомнил про свой старый системник (точнее материнку и блок питания).
Достав его из кучи барахла, заметил что кроме мышки нету никакого
устройства ввода, немного посидел,и начал рыть инет. Так как у меня в
асоррименте только Arduino UNO R3 смотрел статьи только с ней. Многие
делают клавиатуру на Arduino micro (ну там все просто).
В поисках наткнулся на статью где ардуино играет в 2048. Так как для
упавления игрой надо нажимать клавиши, нужно превратить ардуино в
клавиатуру.То что надо!
Цель: написать скетч для Arduino UNO, который будет эмулировать нажатие клавиш стрелок на клавиатуре. Алгоритм наших действий:
Пишем скетч с нужным функционалом и заливаем в МК ATmega328
Прошиваем загрузчик Arduino, usb контроллер ATmega16U2
Для эмулирования нажатий клавиш я использовал библиотеку HIDKeyboard.
Что ж теперь переходим к самому интересному – будем превращать Arduino UNO в HID устройство, а конкретней в USB клавиатуру. Немного теории.
Прошивка загрузчика — для начала нужно перевести Arduino в режим Device
Firmware Update или в более часто используемом варианте DFU. Он служит
для перепрошивки контроллера выполняющего роль конвертера serial to usb.
Как известно, основное отличие Arduino UNO от предыдущих моделей плат
Arduino заключается в наличие второго контроллера ATmega8U2, на смену
аппаратному конвертору USB <-> COM (FT232R). Преимуществом данного
решения является возможность замены прошивки в интерфейсном контроллере
с целью эмуляции произвольного устройства при подключении Arduino к ПК
(накопителя, hid-устройства и т.д.). Как это сделать? У интерфейсного
контроллера имеется режим DFU – прошивка контроллера ATmega8U2 через
подключение через USB. Почти как прошивка центрального контроллера
Arduino. Для этого можно воспользоваться фирменной утилитой Flip. Для
того чтоб перевести контроллер в этот режим программирования потребуется
небольшая аппаратная модернизация Arduino. Для Arduino UNO R3 достаточно поставить перемычку.
После этих действий компьютер обнаружит новое устройство и попытается
самостоятельно поставить драйвера, но у него ничего не получится.
Настало время установить фирменную утилиту Flip от Atmel. Открываем
диспетчер задач и видим новое устройство Arduino Uno DFU.
Выберем драйвер из папки недавно установленной утилиты FLIP. В итоге у
нас появится новое устройство – ATmega16U2. В дальнейшем при подключении
Arduino, устройство будет определять как USB устройство. Теперь нам
следует залить HEX файл с инструкциями USB клавиатуры. Чтоб компьютер в
дальнейшем распознавал нашу Arduino как usb клавиатуру. Запускаем FLIP.
Выбираем в меню Device > Select > ATmega16U2
Выбираем в меню Setting > Communication > USB
Жмем Open берем прошивку
Приступаем к прошивке, жмем Run
По окончании процесса прошивки можно закрыть программу и проверить,
как работает устройство. В итоге мой Arduino успешно играл в 2048 почти
неделю. Даже на ночь его не выключал. В подтверждение вот мой
результат.
Вот так можно превратить Arduino UNO в HID-устройство. Кстати можно не
только играться в игры но и разыграть друга, подключив к его компьютеру
устройство, которое запустит блокнот и будет писать там анекдоты, либо
запускать команды, ведь клавиатура это главный пульт управления
компьютером. К сожалению нельзя применить этот метод к плате Arduino
Nano. Как уже говорилось ранее – второй контроллер Arduino UNO
(ATmega8U2) используется в роли конвертера USB to Serial для определения
компьютером Arduino UNO как USB устройство. Можно сделать вывод:
реализовать этот метод, без посторонних устройств, возможно лишь при
наличии на плате Arduino микроконтроллера запрограммированного как
USB-to-serial конвертер. Но что делать, если у вас Arduino Nano или иная
плата без конвертера USB to Serial? В таком случае можно купить
отдельно конвертер подобный этому.
Чтобы вернуть Arduino UNO к жизни надо перепрошить ATmega16U2
Найти прошивку можно тут:
- Arduino-usbserial-uno.hex - этот файл нужен для того чтоб обратно вернуть Arduino UNO
в стандартный режи работы, чтоб она определялась в ПК как виртуальный COM-порт
в котром мы можем загружать скетчи. https://vk.com/doc5127466_437873517
Удаляем файлы и каталоги по заданным критериям или маске. Есть
несколько вариантов удаления. Прицеп прост, собрать структуру файлов или
директорий и удалить.
Для сбора данных как всегда используем команду find, но многие не смотрели ее дополнительных возможностей. Есть ключ -delete с помощь которого можно сразу и удалить выбранные объекты.
Удаляем все файлы (ключ -type f ) с именем упоминание в имени "*text*" в каталоге ./test/:
find ./test/* -type f -name "*text*" -delete
Удаляем все пустые каталоги по маске
find ./test/* -type d -name "*" -empty -delete
А если каталог или директория заполнена прибегаем к команде rm .
Удаление каталога с файлами
Удаляем конкретный каталоги с файлами.
rm -dfR ./test/dir1
Удаляем каталог с файлами по маске
find ./test/* -type d -name "*dir*" | xargs rm -dfR
Предположим что файловая шара Samba находится у нас по адресу: /home/samba/public в которой уже лежат папки и файлы пользователей.
Тогда запрос принимает вид:
find /home/samba/public-type f -name "~$*.*"-delete
"~$*.*" -маска имени файла, если нужно удалить
например: файлы mp3, то будет иметь вид "*.mp3", а если требуется
удалять приложения, то "*.exe"
Данное задание можно засунуть в Cron и выполнять по ночам, когда сервер не используется.
Решение подходит для всех дистрибутивов Linux.
-h — human, что бы не в байтах, а в гигабайтах/магабайтах/килобайтах и т.д. писало -x — одна файловая система, если внутри просматриваемого каталога примонтирован другой диск, то пропускать его