LINUX.ORG.RU

Сообщения Lonli-Lokli

 

python id3 кодировки

Подскажите, как заставить питон правильно декодировать неюникодные тэги? Пробовал mutagen.easyid3 - он все теги декодирует как утф8, где указать кодировку для чтения я не нашëл. eyed3 вроде позволяет указывать кодировку, но цп1251 выплëвывает, сообщая о неверной кодировке.

Lonli-Lokli
()

cups + laserjet 1018 + win

Lenny i386, cups, foo2zjs (stable). Запускаю getweb 1018, настраиваю принтер, успешно печатаю тестовою страницу, расшариваю, подключаю на машину с виндой (драйвер - Apple LaserWriter 8500), всё ещё успешно печатаю тестовою страницу, сваливаю из офиса.

Далее звонит юзверь, - не печатает. В очереди печати висит последний документ, количество страниц - Unknown. Грохаю задачу, печатю тестовою страницу, чешу репу, печатаю документ юзверя, - печатается пара первых страниц, потом задача повисает. Перезапускаю принтер - печатает ещё пару страниц и снова останавливается. При етом количество страниц в документе - Unknown или 2. Воспроизводится на 4х разных машинах с виндой.

Пробовал обновить foo2zjs из бэкпортов, потом из тестинга - результат тот же. Снёс пакет, поставил по инструкции с сайта разработчика - тот же результат. Снёс весь купс, поставил из сорцов вот по этой инструкции - http://noize85.blogspot.com/2009/04/hp-laserjet-1018-debian-etch.html - результат неизменно превосходен.

Года полтора назад конкретно этот принтер вполне корректно работал с Ubuntu 7.10 и foo2zjs из исходников.

Lonli-Lokli
()

несколько вопросов про SLED

Знакомая приобрела ноут HP ProBook 4515s с предустановленным SLED 11, при этом весьма далека от техники вообще. Сам впервые вижу данный дистрибутив, поэтому смог только коротенько обяснить как вылезти в инет, слушать музыку, втыкать флешки, где лежит опенофис. Если кто имел опыт общения с данным дистром, помогите советом.

Собственно вопросы:
1. Как запилить GIMP? В подключённых по думолчанию репах только гимппринт. В гугле находятся крикливые статьи о его выпиле, не верится что по этому поводу ничего не придумано.
2. Файрфокс при попытке поставить adBlock ругается на отсутствие какого-то ключа, как преодолеть?
3. Существуют ли под это пакеты вайна? Или есть ли под линь аналог Posera (девушка художница, насколько я понимаю, нужна более-менее физиологически точная моделька человека, которую можно поставить в нужную позу и нарисовать)?
4. Видимо всё же придётся ставить хрюшу дуалбутом, нету ли описания, как подвинуть SLED? Сносить его по понятным причинам пока не хочется, разобраться самому проблематично - доступ к аппарату ограничен по времени.

Вообще, Ubuntu 9.10 вроде нормально заводится на этой железке, стоит ли цепляться за SLED?

PS
Что там за ДЕ? По ощущениям что-то среднее между Gnome и XFCE)

Lonli-Lokli
()

Не работает NAT

Хелп, мистика. В айпистолах прописан маскарадинг на 2-х интерфейсах и перенаправление на прокси. Ни то ни другое не работает, в tcpdump видны пакеты с внутренними адресами.

Вот собственно не работающие правила:

iptables -t nat -A POSTROUTING -o $OUT1 -j MASQUERADE  
iptables -t nat -A POSTROUTING -o $OUT2 -j MASQUERADE
 
iptables -t nat -A PREROUTING -s 192.168.1.32/27 -p TCP --dport 80 -j REDIRECT --to-ports 8800  
iptables -t nat -A PREROUTING -s 192.168.1.0/27 -p TCP --dport 80 -j REDIRECT --to-ports 8800
Вот весь конфиг iptables:
#!/bin/sh 
IN="eth1" 
#OUT="wimax0" 
OUT1="ppp0" 
OUT2="ppp1" 
OUT3="eth0" 
 
for i in "-F" "-X" "-Z" 
do 
    for j in "nat" "mangle" "filter" 
    do 
        iptables -t $j $i 
    done 
done 
 
iptables -t nat -A POSTROUTING -o $OUT1 -j MASQUERADE  
iptables -t nat -A POSTROUTING -o $OUT2 -j MASQUERADE  
iptables -t nat -A POSTROUTING -o $OUT3 -j SNAT --to-source 111.222.333.16  
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 
 
# настраиваем маркировку исходящих соединений 
iptables -t mangle -N NEW_OUT_CONN 
iptables -t mangle -N FILTER_OUT_CONN 
 
iptables -t mangle -A PREROUTING -m state --state NEW,RELATED \ 
    -s 192.168.1.0/27 -j FILTER_OUT_CONN 
iptables -t mangle -A PREROUTING -m state --state NEW,RELATED \ 
    -s 192.168.1.32/27 -j FILTER_OUT_CONN 
iptables -t mangle -A OUTPUT -m state --state NEW,RELATED \ 
    -m owner --uid-owner proxy -j FILTER_OUT_CONN 
 
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark 
iptables -t mangle -A OUTPUT -j CONNMARK --restore-mark 
 
iptables -t mangle -A FILTER_OUT_CONN -d 192.168.1.0/27 -j RETURN 
iptables -t mangle -A FILTER_OUT_CONN -d 192.168.1.32/27 -j RETURN 
iptables -t mangle -A FILTER_OUT_CONN -j NEW_OUT_CONN 
 
iptables -t mangle -A NEW_OUT_CONN -j CONNMARK --set-mark 1 
iptables -t mangle -A NEW_OUT_CONN -m statistic --mode nth --every 2 -j RETURN 
iptables -t mangle -A NEW_OUT_CONN -j CONNMARK --set-mark 2 
 
iptables -t nat -A PREROUTING -s 192.168.1.32/27 -p TCP --dport 80 -j REDIRECT --to-ports 8800  
iptables -t nat -A PREROUTING -s 192.168.1.0/27 -p TCP --dport 80 -j REDIRECT --to-ports 8800  
 
iptables -A FORWARD -p UDP --dport 67:68 --sport 67:68 -j REJECT 
iptables -A FORWARD -p TCP --dport 67:68 --sport 67:68 -j REJECT

Lonli-Lokli
()

Ноуты HP

Деушка попросила помочь выбрать ноут. Использоваться агрегат будет для обработки фоток/обучения 3D/интернетов/кина. Пока присмотрели 2 аппарата HP ProBook 4515s (NX505EA) и HP Essential Compaq 615 (VC286EA). Какой аппарат лучше подойдёт для поставленных задач?

615 продаётся с фридосом, подскажите лайвцд, чтоб подцепил видяху и переливался покрасочнее, нужно вау)

Lonli-Lokli
()

Squid и балансировка через nth

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

#!/bin/sh
IN="eth1"

OUT1="ppp0"
OUT2="ppp1"
OUT3="eth0"

for i in "-F" "-X" "-Z"
do
    for j in "nat" "mangle" "filter"
    do
        iptables -t $j $i
    done
done

iptables -t nat -A POSTROUTING -o $OUT1 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o $OUT2 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o $OUT3 -j SNAT --to-source 111.222.333.116 
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# настраиваем маркировку исходящих соединений
iptables -t mangle -N NEW_OUT_CONN
iptables -t mangle -N FILTER_OUT_CONN

iptables -t mangle -A PREROUTING -m state --state NEW,RELATED \
    -s 192.168.1.32/27 -j FILTER_OUT_CONN
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark

iptables -t mangle -A FILTER_OUT_CONN -d 192.168.1.32/27 -j RETURN
iptables -t mangle -A FILTER_OUT_CONN -j NEW_OUT_CONN

iptables -t mangle -A NEW_OUT_CONN -j CONNMARK --set-mark 1
iptables -t mangle -A NEW_OUT_CONN -m statistic --mode nth --every 2 -j RETURN
iptables -t mangle -A NEW_OUT_CONN -j CONNMARK --set-mark 2

# настраиваем раскидывание соединений по интерфейсам проксика
iptables -t nat -N SQUID

iptables -t nat -A PREROUTING -s 192.168.1.32/27 -p tcp --dport 80 -j SQUID

iptables -t nat -A SQUID -m connmark -p tcp \
    --mark 1 -j REDIRECT --to-ports 8800
iptables -t nat -A SQUID -m connmark -p tcp \
    --mark 2 -j REDIRECT --to-ports 8801
#iptables -t nat -A PREROUTING -s 192.168.1.32/27 -p TCP --dport 80 -j REDIRECT --to-ports 8800 
Правила маршрутизации выглядят так:
#!/bin/sh
ip rule add prio 50 fwmark 1 table ppp0
ip rule add prio 51 fwmark 2 table ppp1

# эти адреса прописаны в tcp_outgoing_address
ip address add 192.168.254.0/22 broadcast + dev lo
ip address add 192.168.254.1/22 broadcast + dev lo

ip rule add prio 48 from 192.168.254.0 table ppp0
ip rule add prio 49 from 192.168.254.1 table ppp1

ip route add default dev ppp0 table ppp0
ip route add default dev ppp1 table ppp1

ip route add unreachable default metric 10 table ppp0
ip route add unreachable default metric 10 table ppp1
Вот squid.conf
cache_mem 256 MB
cache_dir ufs /var/cache/squid 1800 16 256
http_port 192.168.1.62:8800 transparent
http_port localhost:8800 transparent
http_port 192.168.1.62:8801 transparent
http_port localhost:8801 transparent

acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl all src 0.0.0.0/0.0.0.0
acl allowed_hosts src 192.168.1.32/27
acl ppp0 myport 8800
acl ppp1 myport 8801

http_access deny manager all
http_access allow allowed_hosts
http_access allow localhost
http_access deny all
#allowed_hosts 
visible_hostname server
 
cache_effective_user proxy
cache_effective_group proxy

cache_log /var/log/squid/cache.log
access_log /var/log/squid/access.log

hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

tcp_outgoing_address 192.168.254.0 ppp0
tcp_outgoing_address 192.168.254.1 ppp1

Lonli-Lokli
()

Программный перезапуск USB модема

Собственно имеется два зверя AnyData ADU-520A воткнутых в шлюз, периодически они виснут, что выражается в массовом «connection script failed» в сислоге. Лечится элементарно - выткнул/воткнул. Можно ли добиться такого эффекта программными средствами?

Lonli-Lokli
()

[scheme][я и диод] как запустить прогу из файла

 

Страшно туплю. Как с помощью mit-scheme/scheme48 запустить прогу имеющуюся в виде исходника? Оно должно компилироваться или интерпретироваться на ходу? Второй день гуглю, но натыкаюсь только на статьи по прикручиванию интерпретатора к емаксу, что нфиг не впилось (ну очень неудобно в нём работать на eee 900). Хелп.

Lonli-Lokli
()

[skylink]одновременная работа 2х модемов

К роутеру подключено 2 модема AnyData ADU-520A. В /etc/ppp/peers/ лежит 2 файла настроек, отличающихся только именем устройства - /dev/ttyUSB0 и /dev/ttyUSB5 соответственно. В /etc/network/interfaces они прописаны так:

auto ppp0
iface ppp0 inet ppp
provider skylink

auto ppp1
iface ppp1 inet ppp
provider skylink2
При загрузке поднимается только ppp0. Если вырубить ppp0 и скомандовать ifup ppp1 подключается всё равно ppp0. C pon тот же результат.

Ниже вывод dmesg и lsusb

[   10.493127] usb-storage: device scan complete
[   10.496121] scsi 3:0:0:0: CD-ROM            AnyDATA  CD-ROM           1.00 PQ
: 0 ANSI: 2
[   10.901352] usb-storage: device scan complete
[   10.904334] scsi 4:0:0:0: CD-ROM            AnyDATA  CD-ROM           1.00 PQ
: 0 ANSI: 2
[   11.296601] usbcore: registered new interface driver usbserial
[   11.296688] usbserial: USB Serial support registered for generic
[   11.296816] usbcore: registered new interface driver usbserial_generic
[   11.296880] usbserial: USB Serial Driver core
[   11.307240] usbserial: USB Serial support registered for GSM modem (1-port)
[   11.307345] option 1-2:1.0: GSM modem (1-port) converter detected
[   11.307502] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
[   11.307582] option 1-2:1.1: GSM modem (1-port) converter detected
[   11.307700] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
[   11.307778] option 1-2:1.2: GSM modem (1-port) converter detected
[   11.307895] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2
[   11.307975] option 2-1:1.0: GSM modem (1-port) converter detected
[   11.308139] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB3
[   10.493127] usb-storage: device scan complete
[   10.496121] scsi 3:0:0:0: CD-ROM            AnyDATA  CD-ROM           1.00 PQ
: 0 ANSI: 2
[   10.901352] usb-storage: device scan complete
[   10.904334] scsi 4:0:0:0: CD-ROM            AnyDATA  CD-ROM           1.00 PQ
: 0 ANSI: 2
[   11.296601] usbcore: registered new interface driver usbserial
[   11.296688] usbserial: USB Serial support registered for generic
[   11.296816] usbcore: registered new interface driver usbserial_generic
[   11.296880] usbserial: USB Serial Driver core
[   11.307240] usbserial: USB Serial support registered for GSM modem (1-port)
[   11.307345] option 1-2:1.0: GSM modem (1-port) converter detected
[   11.307502] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
[   11.307582] option 1-2:1.1: GSM modem (1-port) converter detected
[   11.307700] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
[   11.307778] option 1-2:1.2: GSM modem (1-port) converter detected
[   11.307895] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2
[   11.307975] option 2-1:1.0: GSM modem (1-port) converter detected
[   11.308139] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB3
[   11.308219] option 2-1:1.1: GSM modem (1-port) converter detected
[   11.308337] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB4
[   11.308414] option 2-1:1.2: GSM modem (1-port) converter detected
[   11.308530] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB5
[   11.308610] usbcore: registered new interface driver option
[   11.308673] option: USB Driver for GSM modems: v0.7.2
[   11.939046] input: PC Speaker as /class/input/input3
[   12.129852] Error: Driver 'pcspkr' is already registered, aborting...
[   12.220683] parport_pc 00:0b: reported by Plug and Play ACPI
[   12.220800] parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE]
[   12.544649] Driver 'sr' needs updating - please use bus_type methods
[   12.552123] sr0: scsi3-mmc drive: 0x/0x caddy
[   12.552332] sr 3:0:0:0: Attached scsi CD-ROM sr0
[   12.560160] sr1: scsi3-mmc drive: 0x/0x caddy
[   12.560365] sr 4:0:0:0: Attached scsi CD-ROM sr1
[   12.594024] sd 1:0:0:0: Attached scsi generic sg0 type 0
[   12.594131] sr 3:0:0:0: Attached scsi generic sg1 type 5
[   12.594223] sr 4:0:0:0: Attached scsi generic sg2 type 5
[   13.392437] Adding 979956k swap on /dev/sda2.  Priority:-1 extents:1 across:979956k
[   20.449579] loop: module loaded
[   20.490928] it87: Found IT8718F chip at 0x290, revision 1
[   20.491004] it87: in3 is VCC (+5V)
[   20.491062] it87: in7 is VCCH (+5V Stand-By)
[   21.926038] NET: Registered protocol family 15
[   22.128014] padlock: VIA PadLock Hash Engine not detected.
[   22.225646] padlock: VIA PadLock Hash Engine not detected.
[   22.428570] padlock: VIA PadLock not detected.
[   23.445157] ip_tables: (C) 2000-2006 Netfilter Core Team
[   23.664849] nf_conntrack version 0.5.0 (8192 buckets, 32768 max)
[   23.958063] PPP generic driver version 2.4.2
[   24.120904] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
[   28.544192] lp0: using parport0 (interrupt-driven).
[   28.562908] ppdev: user-space parallel port driver
[   33.638557] sr0: CDROM (ioctl) error, command: Get configuration 46 00 00 00 00 00 00 00 20 00
[   33.638557] sr: Sense Key : No Sense [current] 
[   33.638557] sr: Add. Sense: No additional sense information
[   34.034749] sr1: CDROM (ioctl) error, command: Get configuration 46 00 00 00 00 00 00 00 20 00
[   34.044462] sr: Sense Key : No Sense [current] 
[   34.044670] sr: Add. Sense: No additional sense information
[   34.442257] PPP Deflate Compression module registered
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 16d5:6502 AnyDATA Corporation 
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 16d5:6502 AnyDATA Corporation 
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Lonli-Lokli
()

[squid] tcp_outgoing_address + dhcp

 

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

И ещё вопрос, как сделать так, чтобы шлюз по умолчанию приходящий по dhcp, записывался не в общесистемную таблицу маршрутов, а в отдельную для каждого провайдера/интерфейса?

Lonli-Lokli
()

Ткните носом в косяки

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

#!/usr/bin/env python
#_*_coding: utf-8_*_
"""splits .iso.wv images to .flack tracks"""
import sys, os, subprocess, shutil

class DstDir:
    def __init__ (self, path, img, cue='', src='', dirs=None, other=None):
        self.path = path
        self.img = img
        self.cue = cue
        self.src = src
        if dirs == None:
            self.dirs = []
        else:
            self.dirs = dirs
        if other == None:
            self.other = []
        else:
            self.other = other
        self.tracks = []
        self.album = ''

    def makeFlac (self):
        cuebreakpoints = subprocess.Popen(["cuebreakpoints", self.cue],
                stdout=subprocess.PIPE)
        cmd = ["shnsplit", "-O", "always", "-i", "wv", "-o",
                "flac flac -V -8 -e -p -o %f -",
                "-t", "-%n", self.src]
        shnsplit = subprocess.Popen(cmd,
                stdin=cuebreakpoints.stdout,
                stdout=subprocess.PIPE,
                cwd=self.path)
        shnsplit.wait()

    def tagFlack (self):
        subprocess.Popen(["recode", "cp1251..utf8"],
                stdin=open(self.cue),
                stdout=open(self.path + "/tmp.cue", "w")).wait()
        self.cue = self.path + "/tmp.cue"
        cmd = ["cueprint", "-n", "1", "-t", "%T", self.cue]
        self.album = subprocess.Popen(cmd,
                stdout=subprocess.PIPE).communicate()[0]

        try:
            year = subprocess.Popen(["grep", "REM DATE", self.cue],
                    stdout=subprocess.PIPE).communicate()[0].split()[2]
        except IndexError:
            year = "0000"

        tag_names = ("ARRANGER=%A\nCOMPOSER=%C\nGENRE=%G\nMESSAGE=%M\n" +
                "TRACKNUMBER=%n\nARTIST=%p\nTITLE=%t\nALBUM=%T\nDATE=" + 
                str(year) + "\n\n")
        cmd = ["cueprint", "-t", tag_names, self.cue]
        cueprint = subprocess.Popen(cmd, stdout=subprocess.PIPE)
        cueprint.wait()
        tracks = {}
        n = 1

        for i in cueprint.communicate()[0].split("\n\n")[:-1]:
            tracks[n] = i
            name = "%s/%02d.flac" % (self.path, n)
            new_name = tracks[n].split("\n")[6].split("=")[1]
            new_name = new_name.replace("/", "aka")
            new_name = "%s/%d-%s.flac" % (self.path, n, new_name)
            metaflac = subprocess.Popen(["metaflac", "--import-tags-from=-",
                name],
                stdin=subprocess.PIPE,
                stdout=subprocess.PIPE)
            actual_tags = ''
            for line in tracks[n].split("\n"):
                if line[-1] != "=":
                    actual_tags += line + "\n"
            metaflac.communicate(actual_tags)
            metaflac.wait()
            os.rename(name, new_name)
            self.tracks.append(new_name)
            n += 1

        self.album = year + "-" + self.album

    def moveFiles(self, album=''):
        print "moving files"
        if album == '': album = self.album
        dst = self.path + "/../" + album + "/"
        if os.path.exists(dst):
            dst = "%s%s/" % (dst, self.img.split("/")[-1][:-7])

        os.mkdir(dst)

        for dir in self.dirs:
            shutil.copytree(dir, "%s%s" 
                    % (dst, dir.split("/")[-1]))

        for track in self.tracks:
            print "shutil.move(%s,%s)" % (track, dst)
            shutil.move(track, dst)

        for item in self.other:
            shutil.copy(item,"%s%s"
                    % (dst, item.split("/")[-1]))

        os.remove(self.cue)

def getContent(dst_dir, cur_dir, files):
    while files != []:
        dst_dir.other.append(cur_dir + "/" + files.pop())

    for cur_file in dst_dir.other:
        if os.path.isdir(cur_file):
            dst_dir.other.remove(cur_file)
            dst_dir.dirs.append(cur_file)

    for cur_file in dst_dir.other:
        if dst_dir.cue != '': break
        if cur_file[-4:] == ".cue":
            dst_dir.cue = cur_file

    for cur_file in dst_dir.other:
        if dst_dir.src != '': break
        if cur_file[-3:] == ".wv":
             dst_dir.other.remove(cur_file)
             dst_dir.src = cur_file

######################################MAIN######################################
if not os.path.isdir(sys.argv[1]): raise AssertionError, "Not directory!"

work_dir = os.path.normpath(sys.argv[1])
work_list = []

for cur_dir in os.walk(work_dir):
    for cur_file in cur_dir[2]:
        if cur_file[-7:] == ".iso.wv":
            work_list.append(cur_dir[0] + "/" + cur_file)

if work_list == []: sys.exit()

for img in work_list: 
    tmp_dir = os.path.dirname(img) + "/tmp"
    mnt_dir = tmp_dir + "/mnt"
    os.mkdir(tmp_dir)
    os.mkdir(mnt_dir)

    if subprocess.call(["sudo", "mount", "-o", 
        "loop", "-o", "ro", img, mnt_dir]) == 0:
    else:
        raise RuntimeError, "Cant mount image!"

    try:
        WDir = DstDir(tmp_dir, img)
        os.path.walk(mnt_dir, getContent, WDir)
        WDir.makeFlac()
        WDir.tagFlack()
        WDir.moveFiles()
    finally: #pass
        if subprocess.call(["sudo", "umount", mnt_dir]) !=0:
            raise RuntimeError, "Cant umount image!"
        os.rmdir(mnt_dir)
        os.rmdir(tmp_dir)

    os.remove(img)

Lonli-Lokli
()

[вопрос пионера]Python, командная строка, shntool

class DstDir:
    def __init__ (self, path, cue='', src='', dirs=[], other=[]):
        self.path = path
        self.cue = cue
        self.src = src
        self.dirs = dirs
        self.other = other

    def makeFlac (self):
        cuebreakpoints = subprocess.Popen(["cuebreakpoints", self.cue],
                stdout=subprocess.PIPE)
        cmd = ("shnsplit -O always -i wv -o " +
                "'flac flac -V -8 -e -p -o %f -' -t -%n " + self.src)
        print cmd
        shnsplit = subprocess.Popen(cmd,
                stdin=cuebreakpoints.stdout,
                stdout=subprocess.PIPE)
        print shnsplit.communicate()

Этот велосипед рассыпается при попытке запустить shnsplit, мотивируя тем, что не находит файл. Вот только файл этот совершенно точно есть, что подтверждает os.path.exists(). Может надо спецсимволы как-то заэкранировать?

egr@big:~/soundKonverter$ ./split_iso.wv.py /srv/audio/Aquarium\ Diskografy/02\ Aquarium\ Incognito/
/srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp
Ok!
DOING STAFF
Path:  /srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp
Source:  /srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.wv True
.cue file:  /srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.wv.cue
Dirs:
/srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/scans.zadushevnye.pesni
Other files:
/srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.wv.cue
/srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.jpg
/srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.cue
/srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.LOG
shnsplit -O always -i wv -o 'flac flac -V -8 -e -p -o %f -' -t -%n /srv/audio/Aquarium Diskografy/02 Aquarium Incognito/tmp/mnt/BG_&_Anna_Karenina's_quartet_-_Soul-felt_songs.wv
Traceback (most recent call last):
  File "/home/egr/soundKonverter/split_iso.wv.py", line 95, in <module>
    WDir.makeFlac()
  File "/home/egr/soundKonverter/split_iso.wv.py", line 22, in makeFlac
    stdout=subprocess.PIPE)
  File "/usr/lib/python2.5/subprocess.py", line 594, in __init__
    errread, errwrite)
  File "/usr/lib/python2.5/subprocess.py", line 1149, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

Lonli-Lokli
()

[вопрос пионера]Python, командная строка, пайпы.

Как на питоне перенаправить вывод одной команды на ввод другой, аля ls -l | wc -l ?

PS Нагуглилось море способов, я в них запутался >_<

Lonli-Lokli
()

Учуся

Lenny, KDE 3.5.9, KiCad
Lonli-Lokli
()

[debian]как хранить конфиг файрвола и шейпера

 

Собственно сабж. Для файрвола щас есть папочка /etc/firewall со скриптами в ней. В /etc/network/interfaces они привязаны к pre-up/post-down.
Lonli-Lokli
()

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

Имеется комп с подключённым к нему йотовским модемом. Для восстановления соединения был нацарапан такой вот велосипед

#!/bin/sh
ping -c4 -w5 google.com > /dev/null
EXIT_CODE=$?
if [ ! 0 -eq $EXIT_CODE ]
        then
                ifdown wimax0 > /dev/null 2>&1
                sleep 10
                ifup wimax0 > /dev/null 2>&1
fi
запускается кроном раз в минуту.

Как сделать православно?

Lonli-Lokli
()

Дурацкий вопрос про VPN

Имеется 2 сети с VPN шлюзами и ESP туннель между ними. eth0 смотрит в локалку, eth1 - в инет.

net1--gw1--inet--gw2--net2

Если на eth1 шлюза gw2 запустить tcpdump, то кроме ESP пакетов, ходящих в обе стороны, можно увидеть незашифрованные пакеты идущие из net1 в net2

gw2 > gw1: ESP
gw1 > gw2: ESP
net1 > net2: SOMETHING
На eth1 gw1 при этом видно прмерно то же самое:
gw1 > gw2: ESP
gw2 > gw1: ESP
net2 > net1: SOMETHING
Так и должно быть?

Lonli-Lokli
()

grub + lvm2

имеется машина с корнем на lvm. на ней три винта:

 sda (1Tb):
  sda1 (Ext2) - /boot
  sda2 (PV)
 
 sdb (500G)
  sdb1 (raid autodetect)

 sdc (500G)
  sdc1 (raid autodetect)

 md0 (raid1 собран из sdb1 и sdc1, PV)
Заменил терабайтный винт на новый (старый посыпался):

  • parted'ом скопировал sda1 на новый винт
  • оставшееся место добавил в VG и сделал pvmove на старый
  • vgreduce, pvremove на старый винт

Данные успешно перенеслись, кроме загрузчика. При попытке зачрутившись в систему сделать grub-install, получаю ниже следующий вывод и полное отсутствие загрузчика(((

# grub-install /dev/sda
error: We don't support multiple metadata areas
error: We don't support multiple metadata areas
error: We don't support multiple metadata areas
error: We don't support multiple metadata areas
error: We don't support multiple metadata areas
Searching for GRUB installation directory ... found: /boot/grub
error: We don't support multiple metadata areas
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(hd0)   /dev/sda
(hd1)   /dev/sdb
(hd2)   /dev/sdc
поплясав с бубном поставил таки grub при помощи RescueCD, однако не цепляется menu.lst, в ручном режиме загрузка проходит нормально.

нид хелп.

Lonli-Lokli
()

зарулитьтрафик на прозрачный прокси

Есть 2 подсети 192.168.1.0/24 и 192.168.2.0/24. В каждой из них есть выход в инет и стоит прозрачный прокси. Как зарулить трафик с отдельных машин в 192.168.1.0 на прокси в 192.168.2.0?
Lonli-Lokli
()

LightSquid 1.7.1 правка отчётов. HELP

Так получилось, что в realname.cfg бли перепутаны местами 2 юзера. Для восстановления справедливости взаимно переименовал файлы с их статистикой. Теперь в user details всё отображается правильно, но в общей статистике за месяц и в статистике юзеров по неделям всё осталось в прежнем виде. Насколько я понимаю, лайтсквид всю собранную статистику хранит в текстовиках в подпапках папки reports. Как заставить лайтсквид обновить всё?
Lonli-Lokli
()