Сегодня 27 ноября, среда ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7276
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Мак Сим Blog. Игра в Слова
Мак Сим Blog. Игра в Слова
Голосов: 1
Адрес блога: http://mak-sim.ru
Добавлен: 2008-03-06 15:25:40 блограйдером maksim77
 

Многопоточная обработка файлов в Bash

2011-11-14 11:36:00 (читать в оригинале)


Не знал писать или нет но всё таки решил поделиться. Потребовалось тут по работе запускать параллельную обработку файлов с определяемым количеством потоков. Сначала в интернете нашёл статью Dr.AKULAvich где рассказывалось про ppss (http://drakulavich.blogspot.com/2009/01/ppss.html) но по целому ряду причин эта программа нам не подошла и тогда я просто сам написал простой и во многом примитивный скрипт. Но главное что он работает! Вот делюсь:
Несколько пояснений: никакой универсальностью здесь и не пахнет. Под каждую задачу его надо править ручками. Данный вариант обработает все файлы с расширением dmp в папке /home/user/dir. Обработка сводится к их шифрованию с сжатием и последующем удаление исходных файлов. Переменная TH определяет количество потоков.


 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
enc () {
for FILES in `cat $1`
do
gpg -z 9 -e -r my@email.com $FILES && shred -z -u -n 1 -s 1M $FILES
done
}
TH=8
cd /home/user/dir
for i in *.dmp
do
echo $i >> list.txt
done
N=`cat list.txt | wc -l`
let "L = N / TH"
let "RES = N % TH"
if [ $RES != 0 ]; then
let "L +=1"
else
echo ""
fi
split -l $L -d list.txt

for NUM in x*
do
enc $NUM &
done

rm list.txt
rm -f x*


Пакетная конвертация видео под Android в консоли.

2011-05-25 14:30:09 (читать в оригинале)

Думаю, что многие знаю прекрасную программу для конвертации видео од названием HandBrake. Простая, удобная и главное, что без всяких настроек и тюнинга конвертировать видео-файлы в более комфортный для просмотра на Android устройствах. В ней, конечно, есть неточности например дефолтный пресет …

Read more »



Пакетная конвертация видео под Android в консоли

2011-05-25 11:44:00 (читать в оригинале)

Думаю, что многие знаю прекрасную программу для конвертации видео од названием HandBrake. Простая, удобная и главное, что без всяких настроек и тюнинга конвертировать видео-файлы в более комфортный для просмотра на Android устройствах. В ней, конечно, есть неточности например дефолтный пресет для Android’а почему то называет “iPhone & iPod Touch” ну да оставим это на совести автора :-D. Главное, что работает.
Вряд ли сама програма потребует каких либо инструкций. Но что делать если захотелось странного? Например не использовать GUI. На самом деле, применений этой странности может быть много. Скажем у вас есть жирный такой сервер который можно и загрузить на пару минут конвертацией свежей серией Хауса в свободное от
расчёта траекторий баллистических ракетработы время. Или наоборот у вас старенькая и слабая машина и Gnome с прочими иксами забирают достаточно много ресурсов. Так всё это сделать достаточно легко! В общем виде это будет выглядеть так:
maksim@server:~$ HandBrakeCLI -i input.avi -o output.mp4 --preset "iPhone & iPod Touch"
Параметр "--preset" можно сократить до "-Z".
maksim@server:~$ HandBrakeCLI -i input.avi -o output.mp4 -Z "iPhone & iPod Touch"
Всё хорошо в этих командах кроме одного. А как быть если хочется обработать целую папку? Проблема в том, что в данный момент в программе HandBrakeCLI не существует никакой групповой обработки. на официальном форуме пока, что предлагают использовать скрипты, что мы и сделаем:

 1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
if [ -d "$1/mobile" ]
then
echo "Folder exists"
else
mkdir "$1/mobile"
echo "DIR CREATE"
fi
cd "$1"
for FILENAME in *.avi
do
/usr/bin/HandBrakeCLI -i "$1/$FILENAME" -o "$1/mobile/${FILENAME%.*}.mp4" --preset="iPhone & iPod Touch"
done
Просто передайте этому скрипту как параметр путь до ваших файлов и идите пить кофе (я надеюсь). По возвращению вы обнаружите в этом каталоге новую папку mobile где и будут лежать сконвертированные файлы. Да, не забудьте поправить в шестой строке разрешение ваших видео файлов. Наслаждайтесь :)

Создание RAID-массива поверх multipath устройств (RHEL5)

2011-05-20 11:39:00 (читать в оригинале)

Потребовалось тут по работе настроить RAID-1 на основе двух multipath устройств. Задача не совсем тривиальная и памятуя о том сколько времени я провёл в поиске для нахождения проблемы решил вот поделиться. Говорю сразу если какие-то слова из первого предложения вам не понятны дальше лучше не читать :). Толку будет мало. Статья пишется в расчёте на таких же как я сам страдальцев. Вдруг вам повезёт на неё наткнуться :).
Итак у нас есть четыре диска вида /dev/sd[abcd] которые представляют из себя четыре пути до двух реальных устройств. Сервис multipathd соберёт их в два виртуальных устройства (настройка multipathd неплохо документирована в сети и на ней я останавливаться не буду):
[root@server ~]# /sbin/multipath -ll
mpath5 (3600508b400307eb80000b001036f0000) dm-1 HP,HSV200
[size=4.0G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=50][active]
\_ 6:0:3:2 sdm 8:192 [active][ready]
\_ round-robin 0 [prio=10][enabled]
\_ 6:0:0:2 sdd 8:48 [active][ready]
mpath4 (3600508b400107eb80000a00003740000) dm-0 HP,HSV200
[size=32G][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=50][active]
\_ 6:0:0:1 sdc 8:32 [active][ready]
\_ round-robin 0 [prio=10][enabled]
\_ 6:0:3:1 sdl 8:176 [active][ready]
Для начала нам надо на дисках /dev/sd[abcd] создать разделы. Понятно, что можно создать лишь на sda и sdc. Вот тут есть небольшая тонкость несмотря на то что разделы будут использоваться фактически для RAID-1 ставить им тип 0xfd нельзя! Дело в том, что как только системе будут презентованы эти диск md соберёт из них RAID, и вы получите устройство из /dev/sda1 и /dev/sdc1. А нам то нужны multipath элементы. Можно вообще ничего не указывать, можете указать 0x83 в качестве типа. В любом случае это не принципиально. Лишь бы не 0xfd.
Поехали дальше. После того как разделы созданы необходимо для каждого dm устройства выполнить команду:
kpartx -a /dev/dm-n
она создаст устройства вида /dev/dm-n+1, которые и будут являться нашими только что созданными разделами. Их уже можно объединять в RAID. Если по этому процессу есть какие либо вопросы то вот тут есть неплохая статья. Обязательно создаём mdadm.conf. Про него можно так же прочесть по прошлой ссылке.
А вот дальше есть очень и очень интересный момент! Дело в том, что в RHEL 5 (шестой версии под рукой нет и проверить не смогу) есть досадный баг. В файле /etc/rc.sysinit процедура инициализации RAID-разделов с помощью mdadm.conf вызывается до создания всех /dev/mapper/ устройств. А наши /dev/dm-* на самом деле лишь их отражение. В итоге RAID собран не будет. Есть два решения этой проблемы:
  1. Создать в /etc/init.d/ скрипт по сути из одной строчки
    /sbin/mdadm --assemble /dev/md0
    и обеспечить ему загрузку на нужном runlevel. Он может быть любым по порядку загрузки. Главное чтобы после sysinit'а.
  2. Переместить в файле /etc/rc.sysinit блок
    # RAID setup
    update_boot_stage RCraid
    [ -x /sbin/nash ] && echo "raidautorun /dev/md0" | nash --quiet
    if [ -f /etc/mdadm.conf ]; then
    /sbin/mdadm -A -s
    fi
    ниже блока инициализации # Device mapper & related initialization. Он достаточно длинный и поэтому приводить я его тут не буду.


Создание RAID-массива поверх multipath устройств (RHEL5)

2011-05-20 10:56:09 (читать в оригинале)

Потребовалось тут по работе настроить RAID-1 на основе двух multipath устройств. Задача не совсем тривиальная и памятуя о том сколько времени я провёл в поиске для нахождения проблемы решил вот поделиться. Говорю сразу если какие-то слова из первого предложения вам …

Read more »



Страницы: 1 2 3 4 5 6 

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»
Изменения рейтинга
Категория «Кино»
Взлеты Топ 5
+363
414
Информационный колодец
+341
345
Yurenzo
+339
343
CAPTAIN
+331
341
Alta1r
+322
361
Vindigo
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.