LINUX.ORG.RU

Сообщения zzdnx

 

ffplay и гистограмма для стерео.

При запуске ffplay audio.flac рисуется гистограмма, но она «МОНО».

Я хочу получить что-то в роде такого: http://myweb.liu.edu/jmeschi/audweb/b5psp.gif

Сверху правй канал, снизу - левый. Правый «нормально», «левый» - перевёрнуто.

Дошёл до такого:

ffplay -f lavfi 'amovie=test.flac,asplit=2[a][b]; [a]showspectrum[spectrum_a]; [b]showspectrum=[spectrum_b]; [spectrum_a][spectrum_b] vstack[out0]'
Как дальше - не понимаю. При замене showspectrum на histogram библиотека ругается на то, что нет в ней такого фильтра.

Подскажите, как правильно написать...

 , ,

zzdnx
()

OpenFire и проблема с коридовкой

Исходная задача: перенос OpenFire версии 3.8.2 с Ubuntu 10.04 на Ubuntu 16.04 с повышением версии Java и OpenFire.

Поставил: Ubuntu 16.04, mysql-server, Java8 и OpenFire 4.0.3.

Так как PHPMyAdmin`а на этой машине не должно быть - всю настройку SQL делал из консоли: создал пользователя и выдал ему права, создал базу, в свойствах которой явно указал использовать кодировку utf8. Настраивая OpenFire на соединение с SQL так же указал параметры: useUnicode - true, characterEncoding и characterSetResults - UTF-8. После успешного старта OpenFire я проверил, что таблицы в БД создаются в UTF8. Так как таблицы пользователей в моих версиях OpenFire отличаютя - я был вынужден написать большой SQL-запрос, который заполняет новый Jabber-сервер пользователями и группами (в качестве инструмента для работы с БД я выбрал MySQL Workbench). Ну всё, осталось только дать себе права админа.

Иду в web-морду, даю права, и вот тут-то я заметил, что ФИО пользователя в базе данных превратилось в вопросы. Количество вопросительных знаков не удвоено и точно равно количеству кирилических символов. В браузере вся кириллица отображается нормально (как выяснилось позже, это из-за кэширования страницы: после очистки кэша вместо кириллического ФИО остаются вопросы).

Проверяю базу и таблицы - всё в кодировке UTF8. Проверяю HTML - там явно указана кодировка. Пробовал три браузера: фокс, опера на престо и хром: все трое видят в web-консоли кодировку UTF8 и общаются с сервером именно на ней. Данная проблема воспроизводится при работе с любым полем ввода, в которое попадает символ кириллицы.

Подскажите, пожалуйста, куда рыть в поиске решения проблемы?

 , ,

zzdnx
()

Прошу объяснить причуду мака

ОС - MAC.

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

По идее, решается это просто: переменная-массив, каждый элемент которого содержит имя серии, а индекс в массиве совпадает с порядковым номером серии. Но вот как себя ведёт bash в маке:

~$ for i in 0{1..9} {10..26} ; do names[$i]="s/d" ; echo ${names[$i]} ; done
s/d
s/d
s/d
s/d
s/d
s/d
s/d
-bash: 08: value too great for base (error token is "08")

~$  a=(1 2 3 4 5 6 7 8 9 10)
~$  echo ${a[@]}
1 2 3 4 5 6 7 8 9 10
~$ echo ${#a[@]}
10
~$  echo ${a[8]}
9
~$  echo ${a[08]}
-bash: 08: value too great for base (error token is "08")
~$  echo ${a[09]}
-bash: 09: value too great for base (error token is "09")
~$  echo ${a[9]}
10
Как после такого понимать слоган «Думай иначе»? Или это я в чём-то накосячил? Помогите понять что не так, и почему простой и рабочий код не фурычит в маке...

 ,

zzdnx
()

Автоматизация устаноки grub-pc

Необходимо часто переустанавливать linux на устройство iRU Ergo 101. За основу была взята вот эта статья: http://habr.ru/p/147522/

Я автоматизировал сценарий установки linux почти полностью, только установка grub-pc остаётся интерактивной. Забивание базы debconf ответами не срабатывает; писал в скрипте что-то в роде этого:

DEBIAN_FRONTEND=noninteractive apt-get -y install grub-pc
echo "grub-pc grub-pc/kopt_extracted boolean true" | debconf-set-selections
echo "grub-pc grub2/linux_cmdline string" | debconf-set-selections
echo "grub-pc grub-pc/install_devices multiselect /dev/sda" | debconf-set-selections
echo "grub-pc grub-pc/install_devices_failed_upgrade boolean true" | debconf-set-selections
echo "grub-pc grub-pc/install_devices_disks_changed multiselect /dev/sda" | debconf-set-selections
dpkg-reconfigure -f noninteractive grub-pc
Пробовал и другие конструкции с бОльшим количеством ответов.

Пока что каждый раз появляется окно, в котором нужно нажать кнопку [OK] и за ним второе, в котором нужно выбрать место установки. Как правильно избежать этих вопросов при установке grub-pc, если место установки предопределено в /dev/sda?

 ,

zzdnx
()

Журнал выключений

В ос M$ есть журнал событий и с помощью проспотра которого можно выяснить - на сколько корректно выключался компьютер. В логах Linux не силён, но долгий гуглёж подсказал мне только утилиту last, по выхлопу которой история выключений стсиемы вообще не видна.

Поэтому хочу спросить - как встроенными средствами ОС можно посмотреть историю выключений Linux системы? В особенности меня интересует статус выключения - корректное завершение работы или система «упала».

Например, гипервизор не дождался выключения гостя и по таймауту брякнул песочницу с Linux. Необходимо в Linux-госте при загрузке выяснить статус предыдущего завершения работы (например, чтобы отправить email администратору).

 , ,

zzdnx
()

rsync и rsync-path

Пишу скрипт бэкапа на основе rsync.

В процессе написания потребовалось предварительно создавать каталог в пункте назначения - как раз для этого подходит параметр rsync-path.

Однако, как выяснилось, этот параметр требует особого синтаксиса (содержит кавычки) и исходя из того, как шелл разбирает синтаксис - я не могу «забрать» этот параметр в переменную содержащую аргументы rsync`а или свернуть как-то ещё (подставлять этот параметр по условию.

В итоге я обязан писать этот параметр руками или в скрипте ЯВНО. Теперь вопрос:

Существует-ли метод обхода для «особого синтаксиса» параметра rsync-path? Или это приговор?

rsync --rsync-path="mkdir ... && rsync" ${args[@]}

 

zzdnx
()

Rsync, SSH и Expext

Задача: автобэкап RSYNC`ом по SSH, но без авторизации по ключам, без Perl и Python.

На сервере нельзя сделать ключи для автоматической авторизации SSH (можно, но при перезапуске содержимое каталога будет сброшено). Для автоматизации процесса логина по SSH подходит EXPECT, однако всё обламывает RSYNC:

Часть скрипта:

rsync --rsync-path="mkdir -p $DST/Processing-$date && rsync" $args
В переменной args хранятся прочие паремнтры бэкапа. А вот rsync-path приходится писать отдельно, потому что при попытке передать его в переменной - rsync начинает жаловаться на незакрытую кавычку.

Гугление этой проблемы привело сюда: http://www.scriptscoop.net/t/71fc79314eee/bash-random-single-quotes-being-add... Общая суть ответа: «всё правильно, так и должно быть и это не исправимо никак, даже не пытайтесь.»

Теперь у меня возникает вопрос: это что, безвыходная ситуация?

На всякий случай приведу полную команду RSYNC`ка:

rsync --rsync-path="mkdir -p $DST/Processing-$date && rsync" -axpz --delete --link-dest=../Latest --numeric-ids ~/ToBackup/ netuser@server:$DST/Processing-$date

Может, есть возможность поиграть с параметром rsync-path, или что-то ещё придумать?

 , , ,

zzdnx
()

Автоматизация работы с терминалом

Мне как-то говорили что есть программа для терминала, которая отправляет на выполнение команду (например, telnet), и когда та возвращает данные (например, придложение ввести имя/пароль) эта программа ведёт диалог отправляя те данные, которые которые у неё просят на основе скрипта. Кто-нибудь может назвать имя этой программы?

 

zzdnx
()

Русская локаль для FVWM-Crystal

Имею железку с малой памятью на флэшке - 4GB. Решил сделать встроенный линукс. Уместил ОС «precise» и кучу дополнительного софта. Так как свободного места осталось совсем мало - при выборе графики решил поставить FVWM-Crystal.

Проблема: менюшка FVWM-Crystal всегда на английском. С локалью всё в норме, все программы на русском языке, а FVWM хоть убейся - только англоязычный.

Я помню как после установки на сервер и на десктоп сразу получал его русифицированным, а тут такая каверза.

# locale -a
C
C.UTF-8
POSIX
ru_RU.utf8
ru_UA.utf8
# cat /etc/default/locale
LANG=ru_RU.utf8
LANGUAGE="ru_RU"

Пытался задавать LC_ALL как в /etc/profile, так и в .bashrc, пробовал делать «export LANG=ru_RU.utf8», так же пытался «sudo update-locale LANG=ru_RU.UTF-8» - ничего не помогает.

Подскажите куда копать...

 , , ,

zzdnx
()

Маршруты и OpenVPN

Задача: Используя OpenVPN соединить туннелем две локальные сети.

Главное: OpenVPN в обоих случаях расположен на маршутизаторе (со стороны сервера есть снифер).

Локальная сеть со сотороны сервера: 169.254.X.X.

Локальная сеть со стороны клиента:192.168.0.X.

Туннель поднимается и подключение успешно. Между клиентом и сервером openvpn беспрепятственно бегает трафик. Однако две локальные сети друг друга не видят. Снифер показывает следующую картину:

Когда в локальной сети с сервером openvpn появляется пакет адресованый в локальную сеть клиента openvpn - тот по таблице маршрутизации отправляется в туннельное устройство.

Если адресом назначения пакета будет туннельный адрес клиента - всё работает.

Если адресом назначения пакета будет хост из локальной сети клиента - пакет «войдёт» в туннель, но при этом «не выйдет» в виде зашифрованного трафика на eth-устройстве. Такое впечатление, что OpenVPN режет все адреса, не относящиеся к виртуальной локалке. Подскажите куда копать...

Конфиг сервера:

# ############################################################################ #
#                                 Server OpenVPN                               #
# ############################################################################ #
# Interface:
dev tun
tun-mtu 1500
mtu-disc yes
fast-io
proto udp
port 3333

# Server settings:
server 10.0.0.0 255.255.255.0
push "route 10.0.0.0 255.255.255.0"
ifconfig-pool-persist ipp.txt
route 192.168.0.0 255.255.255.0
topology subnet
client-config-dir ccd
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120

# Cipher
...
# Keys
...
# Logging:
...

 ,

zzdnx
()

Обучение AWK: преобразовать текст в таблицу.

Понимаю что такая задача решается awk`ом (и возможно не за один проход), но понимания «как это реализовать» ещё не хватает. Прошу показать как это делается и если будут вопросы - объяснить.

Формат ТЕКСТА на входе:

КЛЮЧ1
категория_1
элемент_1. элемент_2 / элемент_3
элемент_1. элемент_2 / элемент_3
элемент_1. элемент_2 / элемент_3
... (пропущенные строки соответствуют категории "1")
элемент_1. элемент_2 / элемент_3
категория_2
элемент_1. элемент_2 / элемент_3
элемент_1. элемент_2 / элемент_3
элемент_1. элемент_2 / элемент_3
... (пропущенные строки соответствуют категории "2")
элемент_1. элемент_2 / элемент_3
Формат таблицы на выходе:
КЛЮЧ1 [tab] категория_1 [tab] элемент_1 [tab] элемент_2 [tab] элемент_3
КЛЮЧ1 [tab] категория_1 [tab] элемент_1 [tab] элемент_2 [tab] элемент_3
КЛЮЧ1 [tab] категория_1 [tab] элемент_1 [tab] элемент_2 [tab] элемент_3
... (пропущенные строки соответствуют категории "1")
КЛЮЧ1 [tab] категория_1 [tab] элемент_1 [tab] элемент_2 [tab] элемент_3
КЛЮЧ1 [tab] категория_2 [tab] элемент_1 [tab] элемент_2 [tab] элемент_3
КЛЮЧ1 [tab] категория_2 [tab] элемент_1 [tab] элемент_2 [tab] элемент_3
... (пропущенные строки соответствуют категории "2")
КЛЮЧ1 [tab] категория_2 [tab] элемент_1 [tab] элемент_2 [tab] элемент_3
КЛЮЧ1 [tab] категория_2 [tab] элемент_1 [tab] элемент_2 [tab] элемент_3
Категорий много, поэтому взялся за bash.

Имя категории состоит из одного слова, содержащего «_».

Под мнемоникой [tab] понимается любой допустимый делиметр полей в таблице - планируется сделать csv-таблицу.

Поле [ключ] состоит из НЕСКОЛЬКИХ СЛОВ, разделённых пробелами!

 , ,

zzdnx
()

Удалённое исполнение Х-приложений

СЕРВЕР имеет ПО которому обязательного требуется запуск графической оболочки. Иксы поставлены, но не стратуют при запуске системы, а для запуска и настроек ПО был установлен пакет ThightVNC.

Имеется компьютер-ТЕРМИНАЛ, который должен управлять приложениями на СЕРВЕРЕ так, словно они запускаются на самом терминале.

Итого: передача ОКНА приложения с СЕРВЕРА (из сессии ThightVNC) на ТЕРМИНАЛ.

Я вспомнил что когда-то случайно находил в сети информацию о том что дисплей ThightVNC работает со своим собственным окружением, недоступным для консольных пользователей и даже ОС, а ещё внутри ThightVNC запускается «своя» версия иксов (не та, что в системе), и потому доступны не все «плюшки», Так как ссылка была утеряна - я прошу подтвердить, по возможности, ссылками, что такой вариант проброса не допустим.

Остаются варианты:

1) Передача ОКНА приложения из удалённого Х-сервера (требуется запуск иксов на сервере).

2) Передача ДИСПЛЕЯ с удалённого сервера (ThightVNC передаёт картинку от запущенных на сервере иксов)

Однако не очень хочется, чтобы кто-то находясь рядом с сервером мог увидеть что-то происходящее на экране. Какой вариант решения посоветуете?

 

zzdnx
()

Зеркалирование сайтов с кириллическими именами

Иногда я делаю копии мелких сайтов для прочтения в оффлайне. Обычно делаю это wget-ом, иногда нужен httrack.

Недавно родилась мода на кирилические имена сайтов и здравствуй глюк: «wget -mkp ... » качает какую-то левую фигню, потому что неправильно резолвит имя. Да, у сайта есть имя из латиницы и я попытался написать это имя сайта (латинскими), но оттуда меня переадресовывают на кирилическое имя и дамп обламывается.

HTTrack тоже не может дампить этот сайт (дампит одну страницу, при том ту же, что и wget). Вопрос не в том, как заставить wget сделать дамп, а можно-ли сделать дамп вообще?

В догонку - а как пинговать такие сайты? Или трассировать... Да как вообще работать с такими именами? Проблемка, в общем, глобальная. Прошу тех кто умеет - научите меня работать с «кириллическоимёнными» сайтами.

 ,

zzdnx
()

Глючный Wi-Fi на RaspberryPi

Есть RPi2 и Asus-N10 (Nano). Задача: если при запуске ОС вставлен WiFi-модуль, то попытаться подключиться в предварительно настроенной сети и поддерживать соединение до момента выключения.

Настраивал по мануалам из сети.

В /etc/network/interfaces присутствует:

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
В файле wpa_supplicant.conf добавил:
network={
        ssid="Имя"
        psk="Пароль"
        key_mgmt=WPA-PSK
	proto=RSN
	pairwise=CCMP
	auth_alg=OPEN
}
Для автозапуска WiFi вписал строки в /etc/rc.local:
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
sleep 5
dhclient wlan0 

Результат странный. По началу я думал что WiFi не поднимается совсем, но потом выяснил что это не совсем так. Он стартует и коннектится, но соединение долго не живёт. Для наглядности я решил пинговать с момента старта WiFi-адаптера. Обратите внимание на icmp_seq:

PING retropie (192.168.1.117) 56(84) bytes of data.
64 bytes from retropie (192.168.1.117): icmp_seq=1 ttl=64 time=122 ms
64 bytes from retropie (192.168.1.117): icmp_seq=2 ttl=64 time=8.04 ms
64 bytes from retropie (192.168.1.117): icmp_seq=3 ttl=64 time=6.22 ms
64 bytes from retropie (192.168.1.117): icmp_seq=4 ttl=64 time=6.55 ms
64 bytes from retropie (192.168.1.117): icmp_seq=5 ttl=64 time=3.24 ms
64 bytes from retropie (192.168.1.117): icmp_seq=6 ttl=64 time=12.6 ms
64 bytes from retropie (192.168.1.117): icmp_seq=7 ttl=64 time=6.80 ms
64 bytes from retropie (192.168.1.117): icmp_seq=8 ttl=64 time=6.07 ms
64 bytes from retropie (192.168.1.117): icmp_seq=9 ttl=64 time=6.73 ms

64 bytes from retropie (192.168.1.117): icmp_seq=43 ttl=64 time=203 ms
64 bytes from retropie (192.168.1.117): icmp_seq=44 ttl=64 time=10.9 ms
64 bytes from retropie (192.168.1.117): icmp_seq=45 ttl=64 time=6.31 ms
From 192.168.1.103 icmp_seq=80 Destination Host Unreachable
... icmp_seq=... Destination Host Unreachable
From 192.168.1.103 icmp_seq=113 Destination Host Unreachable
64 bytes from retropie (192.168.1.117): icmp_seq=114 ttl=64 time=2174 ms
64 bytes from retropie (192.168.1.117): icmp_seq=115 ttl=64 time=1172 ms
64 bytes from retropie (192.168.1.117): icmp_seq=116 ttl=64 time=173 ms
64 bytes from retropie (192.168.1.117): icmp_seq=141 ttl=64 time=105 ms
From 192.168.1.103 icmp_seq=177 Destination Host Unreachable
... icmp_seq=... Destination Host Unreachable
From 192.168.1.103 icmp_seq=394 Destination Host Unreachable
64 bytes from retropie (192.168.1.117): icmp_seq=395 ttl=64 time=1207 ms
64 bytes from retropie (192.168.1.117): icmp_seq=396 ttl=64 time=203 ms
From 192.168.1.103 icmp_seq=440 Destination Host Unreachable
... icmp_seq=... Destination Host Unreachable
From 192.168.1.103 icmp_seq=491 Destination Host Unreachable
64 bytes from retropie (192.168.1.117): icmp_seq=492 ttl=64 time=2055 ms
64 bytes from retropie (192.168.1.117): icmp_seq=493 ttl=64 time=1054 ms
64 bytes from retropie (192.168.1.117): icmp_seq=494 ttl=64 time=53.8 ms
From 192.168.1.103 icmp_seq=548 Destination Host Unreachable
... icmp_seq=... Destination Host Unreachable
Для решения проблемы пробовал ping в crontab и настраивал /etc/modprobe.d/8192cu.conf - не помогло. Я ранее никогда не настраивал WiFi из терминала и не знаю подводных камней. Что я мог не так настроить?

 ,

zzdnx
()

Сборка PS3Xport на ubuntu 10

Скачал zip с github. Распаковал. Запускаю autogen:

$ ./autogen.sh 
Running aclocal...
configure.ac:4: error: Autoconf version 2.66 or higher is required
configure.ac:4: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
aclocal: autom4te failed with exit status: 63
А в build_loop.sh вообще упоминается «ppu-gcc». В README сказано, что утилита собирается классической триадой (./configure && make && make install), но я не могу получить configure-файла. Помогите со сборкой. Я раньше не сталкивался с такими ситуациями (на этой же машине собирал ffmpeg и transmission из исходников)

 

zzdnx
()

RPi в качестве FM на всю деревню

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

Суть. Не трудно найти в сети программу для вещания в ЧМ из малины. Есть два способа применения этой наработки: в пределах дома/квартиры (интересует мало, так как работать будет только для меня) и на большую площадь. И вот с этим есть проблема - на сколько окружающим радиоволнам будут мешать гармоники и какова дальность вещания с увереным приёмом?

Исходим из того что в низине есть населённый пункт максимум на 6000 человек. В силу особенностей ландшафта, не взирая на ретрансляторы, там практически не ловят ЧМ-приёмники (за исключением автомобильных, да и в них всего пара станций, которые всем порядком надоели).

Задача: поднять вещание местной странции или сделать трансляцию какой-нибудь другой/новой.

Место для вещания: самая высокая точка в географическом центре НП.

Особенность: всё это должно управляться программно и удалённо, в случае проблем починка должна быть ПРОГРАММНОЙ, а если нужна замена - Меняем целиком не более чем за 30 минут.

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

Моя проблема: не хватает знаний даже на приблизительный анализ (я всё-таки ближе к компьютеру чем к радио, да и пробовать на практике нет возможности, так как я сейчас в городе). Если поднятая на RPi станция будет вещать на слишком малое расстояние или будет сильно шуметь в эфир (перекрывая другие станции своим сигналом или шумом) - она бесполезна и вопрос будет снят.

И так, вопрос: Возможно-ли это? [«ДА» или «НЕТ», если «ДА», то «КАК?»] Своя станция на RPi с радиусом вещания в ~4 км, не заваливающая шумом соседей. (меня сильно смущает вещание прямоугольными испульсами, имитирующее модуляцию) Тех, кто не знает и советует по наитию прошу не писать сюда вообще - вопрос задан без шуток. Спасибо за понимание.

 ,

zzdnx
()

Вытащить данные из экстренного dd-образа

Волею судьбы пришлось срочно сделать образ диска. Образ был сделан утилитой dd и размещён на NAS. Места критически не хватает и забрать образ для распаковки некуда, дисков лишних на 0,5TB не имею, так что приходится работать с тем, что есть - образ диска на сетевой помойке. Самый лучший для меня вариант - смонтировать все разделы из образа прямо на NAS`е его штатными утилитами (fdisk есть, mount loop поддерживается, а вот kpartx - нету). В сети полно мануалов о том, как сделать монтирование нескольких партиций из образа, но все они либо через kpartx, либо в примере жёсткий диск с одной-двумя партициями. Более того, в файлопомойке софт не столь продвинутый как в полноценном компьютере и 2/3 опций не поддерживаются.

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

Итак, имеем NAS с не очень развитыми утилитами (так что всё для монтирования прийдётся считать вручную), образ диска с основными и логическими партициями, на разных ФС. Задача: изъять данные из образа на NAS игнорируя ограничения прав доступа и сделать их доступными для скачивания (вопросы безопасности не рассматриваются - всё делает администратор сети).

Для начала привожу карту жёсткого диска:

fdisk sda.img

Command (m for help): p

Disk sda.img: 500.1 GB, 500112031744 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976781312 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xaa9693fe

  Device Boot      Start         End      Blocks   Id  System
sda.img1   *          63   125831230    62915584    7  NTFS
sda.img2       125833277   976768064   425467394    5  Extended
sda.img5       125833279   545149709   209658215+   7  NTFS
sda.img6       545149773   934822349   194836288+  83  Linux
sda.img7       934822413   975787256    20482422   83  Linux
sda.img8       975788163   976768064      489951   82  Linux swap / Solaris
Лог NAS:
fdisk sda.img

Command (m for help): p

Disk /volume1/NetBackup/sda.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot      Start         End      Blocks  Id System
sda.img1   *           1        7833    62915584   7 HPFS/NTFS
Partition 1 has different physical/logical endings:
     phys=(1023, 254, 63) logical=(7832, 161, 8)
sda.img2            7833       60801   425467394   5 Extended
Partition 2 has different physical/logical beginnings (non-Linux?):
     phys=(1023, 254, 63) logical=(7832, 193, 39)
Partition 2 has different physical/logical endings:
     phys=(1023, 254, 63) logical=(60800, 254, 63)
sda.img5            7833       33934   209658215+  7 HPFS/NTFS
sda.img6           33935       58190   194836288+ 83 Linux
sda.img7           58191       60740    20482422  83 Linux
sda.img8           60741       60801      489951  82 Linux swap
sda.img1 = NTFS, 
sda.img5 = NTFS, 
sda.img6 = /home, 
sda.img7 = /
Лог NAS:
# losetup
BusyBox v1.16.1 (2014-02-11 20:12:55 CST) multi-call binary.

Usage: losetup [-o OFS] LOOPDEV FILE - associate loop devices
	losetup -d LOOPDEV - disassociate
	losetup [-f] - show

Options:
	-o OFS	Start OFS bytes into FILE
	-f	Show first free loop device
# losetup -f 
/dev/loop2
Всего loop-устройств 0-255. Пробовал сделать в лоб: Смещение будет = число секторов на дорожке * размер сектора * начальная дорожка раздела, но не получается: Лог NAS:
# mount -o loop,offset=$((63*512*33935)) ./sda.img ./0
mount: mounting /dev/loop1 on ./0 failed: Device or resource busy
# losetup              
/dev/loop0: 0 /volume1/NetBackup/sda.img
# losetup -o $((63*512*33935)) /dev/loop6 ./sda.img
/dev/loop0: 0 /volume1/NetBackup/sda.img
/dev/loop6: 1094607360 ./sda.img
# mount /dev/loop6 ./0
mount: mounting /dev/loop6 on ./0 failed: No such device
#
Что именно я делаю не так? Что не проверил/не понял/чего ещё не знаю?

 , ,

zzdnx
()

Странное поведение BASH при запуске через cron

Имеются 2 скрипта: страт/стоп виртуальной машины и скрипт бэкапа.

В скрипте бэкапа имеется конструкция вида:

logging "Stop service $ИмяВМ" && logging "VirtualBox service script returned: `service "$ИмяВМ" stop`" && \
(этот блок описывает копирование файлов и может завершиться как true или false) || logging "debug: перепенные и их значения"
Функция logging самописна и не делает ничего сложнее команды echo в файл и консоль (именно в этом порядке). Приведённая выше конструкция эквивалентна следующей:
true && true && (true или false) || logging debug

Скрипт бэкапа запускается и корректно работает от sudo и под root с любыми допустимыми для него параметрами (включая all), но начинает «чудить» при запуске кроном.

Запуск кроном:

Скрипт получает параметр all, что интерпритируется как «бэкап в порядке описанной очереди» (в очереди более 3-х ВМ).

При бэкапе первой же машины даёт осечку блок копирования файлов (не важно почему) и скрипт сразу переходит к бэкапу второй машины - именно тут начинается что-то странное. До третьей машины бэкап не доходит.

Лог бэкапа первой машины:

2015-01-15 06:15:03 AM Stop service AP
2015-01-15 06:15:14 AM VirtualBox service script returned: VirtualBox guest AP stoping...
2015-01-15 06:15:14 AM Start FastCopy (bigsync)...
2015-01-15 06:15:16 AM debug: $1=AP, folder=/home/vbox/AP, config_file=AP.vbox, hdd_file=AP.vdi

Лог бэкапа второй машины:

2015-01-15 06:15:16 AM Stop service LA
2015-01-15 06:15:21 AM VirtualBox service script returned: VirtualBox guest LA stoping...
Странность в том, что логгирование обрывается после выполнения второго вызова функции logging, ведь прописано "(все предыдущие команды) || logging Debug:...". Такое поведение у скрипта регульярно при запуске кроном. Порядок ВМ в списке «all» значения не имеет. Права доступа к файлам и каталогам в порядке. В чём ошибка-то? Почему скрипт не работает только по крону?

 

zzdnx
()

Заново отправить имя на сервер DHCP-DNS.

Домашнюю сеть содержит роутер с прошивкой dd-wrt. Демон DHCP - DNSMasq, время аренды - 24 часа. У роутера кратковременно упало питание, сервера не пострадали. Результат: я не могу полключиться к серверу по имени (по IP работает, но зачем тогда давать имена хостам?).

Ждать истечения срока аренды или перезагружать сервер / передёргивать eth[Х] желания нет. Можно-ли избежать этой проблемы? Интересует решение на стороне КЛИЕНТА (что-то вроде «вречную попросить DNS заново принять имя клиента»).

 

zzdnx
()

Что это может быть?

Собственно, лог из консоли (я нахожусь в /media/sdb/work):

$ mount | grep media ; df -h | grep media ; cp -r OLD/log/ ./
---
/dev/sdb1 on /media/sdb type btrfs (rw)
---
/dev/sdb1        1,9T         1,1T  835G           56% /media/sdb
---
cp: невозможно создать обычный файл «./log/chapters/1.txt»: На устройстве не осталось свободного места
И так все файлы из каталога log, или любого другого. А самое смешное - команды mkdir/rmdir и touch/rm таких ошибок в том же каталоге не возвращают. Юзер под которым я сижу создан при установке ОС, никаких ограниений или настройки прав не делал, с правами доступа в рабочем каталоге всё в порядке (я владелец ФС с полными правами), вот только с btrfs ранее не работал.

 ,

zzdnx
()

RSS подписка на новые темы