Szkriptek: Python, Perl, Bash, ...

Cronból párhuzamosan induló scriptek kiszűrése

Sziasztok!

Adott egy videókonvertáló rendszer aminek a feladata, hogy rendszeres időközönként különböző mappákba feltöltött videókat átkonvertáljon. Az automatikus videókonvertálás cronból fut. Viszont megszaporodtak a 4K-s videók is melyeket konvertálni kell és jó lenne ha ezek konvertálása nem egyszerre indulnának. A felhasználó egy webes felületen tudja beállítani az automatikus indításokat. Szeretném ha már a webfelületen ki lennének szűrve azok a projektek melyek egyszerre indulnának, magyarul kapjon egy warningot ha olyan cron beállítások szerepelnek, melyeknél van olyan időpont amikor két konvertálás egyszerre indulna. Lényeg, hogy ne a konvertálás indulásakor derüljön ki, hogy pont akkor indul a másik is, hanem magát a crontab listát (amiben 15-20 projekt indítása van) kellene úgy listázni, hogy egyértelműen látszódjanak azok melyeknél lehetséges az egyszerre indulás.

[megoldva] django - big file upload to azure

Elakadtam egy munkahelyi problémával. Azure storage hátterű Django (2.0.8) admin oldalról csak 5MB alatti fájlok feltöltése sikeres. Nagyobb fájloknál egy üres fehér képernyő a válasz, nem tudom (egyelőre) ledebuggolni, hogy hol is szakad meg a folyamat. Mintha nem is érne el nginx-ig a dolog... Gyanítom, hogy azzal van gond, hogy ilyenkor feldarabolná a nagy fájlt, és valami nem történik meg (jogosultság vagy port-hiba vagy hasonlók miatt). Próbálom a helyi gépemen is Azurite (Azure storage emulator segítségével megtalálni a dolog nyomát, de egyelőre nem látom, mert itt minden sikerül. Django-debug-toolbar sem vitt eddig előre.

Van köztetek olyan szakember, aki otthonosan mozog ebben a (python debug) témában? És esetleg segítene személyesen valami módon?

Megoldás: néhány modul frissítésével valahogy egyszer csak megoldódott a dolog. (De az is lehet, hogy az infrastruktúráért felelős kollégáim állítottak valamit Azure oldalon.)

perl backtick return code

Sziasztok,
Minap egy elég kellemetlen hibába futottunk.
:) [08:05:35] :~/$ perl -e 'exit(256);'
:) [09:34:14] :~/$ echo $?
0 <------------------------- bash doksi alapján ha az rc értéke nagyobb mint 255 akkor az rc érték modulo 256 lesz
:) [09:34:17] :~/$ perl -e 'exit(255);'
:( [09:34:22] :~/$ echo $?
255

Ez még rendben is volna ha perl backtick nem 256 többszörösével térne vissza :
:) [09:39:37] :~/$ perl -e '`ssh host01 badcmd`; print $?'
bash: badcmd: command not found
32512 <---------------------- Ez honnét a jöhet??????
:) [09:39:40] :~/$ echo $?
0

Igen tudom, hogy lehet helyette használni exec() vagyg system(), hívásokat vagy talán még ssh perl modul is létezik ami nem csak egy wrapper az ssh körül.
Tudtok olyan oldalt ahol perl backtick return code dokumentálva van?

python ossaudiodev.openmixer() hogy működik

A házi kedvenc szerverkémen elromlott az alaplapi hangkártya - a bal csatorna szinte süket. Kínlódtam vele kicsit, végül bedugtam egy eBay USB "hang kártyát" - mükszik. Sikerült beállítani a /etc/asound.conf file ssgítségével hogy ez legyen a default. Viszont, a másik "kedvenc" a parancssori cplay lejátszó, nem bír hangerő szabályozni :(
Találtam egy cikket, ahol pont erre panaszkodtak és hogy az volt a megoldás, hogy a cplay Python scriptbe "belevéste a mixer device -t"

import ossaudiodev
mixer = ossaudiodev.openmixer()
get, set = mixer.get, mixer.set
self.channels = self.channels or \
[['MASTER', ossaudiodev.SOUND_MIXER_VOLUME],
['PCM', ossaudiodev.SOUND_MIXER_PCM]]
except ImportError:
import oss
mixer = oss.open_mixer()
get, set = mixer.read_channel, mixer.write_channel
self.channels = self.channels or \
[['MASTER', oss.SOUND_MIXER_VOLUME],
['PCM', oss.SOUND_MIXER_PCM]]

A következő képpen "mixer = oss.open_mixer("/dev/mixer1")"
Hát nerkem ez sehogy sem működik. Sajnos nem ismerem a Python -t. Keresgéltem, hogy is működnek ezek az utasítások, de a leíráson kívül semmi példa a használatra :(
Ráadásul, nekem úg tűnik, az oss.open_mixer csak akkor kerül elő, ha az ossaudiodev.openmixer() nem működik (except).
Megpróbáltam oda is beírni a kívánt device nevet - semmi eredmény.
Próbáltam beállítani a MIXERDEV környezeti változót:
$ MIXERDEV="/dev/mixer1"
de ez sem segített :(
Valami ötlet, segítség?
(Próbáltam letiltani az alaplapi hangkártya driver modulját, de az sem segített, egyszerűen nem épültek fel az oss -hez szükséges device -ok az USB "hang kártyára")

Perl: utf8 karakterek kihagyása latin1 fájlból

Van egy log fájlom, amit perlben fel kellene olvasnom. A logot készítő program nagyon ügyel rá, hogy csak latin1 karakterek kerüljenek a logba, ezért mindent elkódol ... majdnem mindent.
Néha azonban bekerül egy-egy utf-8 karakter is a logba, amit innentől nem tudok megfelelően kezelni.
Ezek az utf-8 karakterek mindig valamilyen hibából fakadnak, így elég lenne, ha ezeket le tudnám nyelni, vagy át tudnám ugrani. Az ilyen adatok csonkolása, sérülése nem lenne gond.
Célom, hogy csak latin1 karaktereket olvassak ki a fájlból.
Hiába nyitom meg azonban "< :encoding(Latin1)" módban a fájlt, továbbra is utf-8 karakterként kerül beolvasásra a sérült adat.
Van valakinek valamilyen ötlete?

[Megoldva] File export GIMP-bol sajat formatumban / Python plugin

Hi,

Szeretnek irni egy GIMP plugint Pythonban, ami egy (nem tul) specialis formatumba menti a kepet. Azert Python, mert azt szeretnem, ha csak egyszeruen be kellene masolni a plugins konyvtarba es nem kellene kulonbozo platformokra forditgatni.

Persze tele van a net kulonbozo Pythonban irt pluginokkal, kis primitivet mar en is osszekalapaltam, mukodott.

Amire szuksegem lenne, hogy hogyan szerzem meg az image-et es tudom kiirni file-ba a biteket (monokrom (csak fekete es feher) a kep (1 bites).

Lehet, hogy idovel en is rajonnnek, de gondoltam hatha valaki mar irt hasonlot es tud segiteni.

Koszi,

/sza2

Megoldas: a kep kinyerheto a layer.get_pixel_rgn() fuggvennyel, iras meg egyszeru file.write()

--
Digital? Every idiot can count to one - Bob Widlar

grub-install interakció nélkül

Automatizálnom kellett egy debootstrap-os/chroot-os Linux telepítés lépéseit, ami meg is történt, de az utolsó lépésnél, a grub-install-nál elakadtam. A probléma, hogy bármit is próbáltam, a grub-install mindenképpen visszakérdez a végrehajtásnál, hogy na, akkor most melyik eszközre menjen.A parancs: grub-install /dev/eszköz --target=i386-pc --efi-directory=/ --boot-directory=/boot

A kugli nem segített, a man dettó. Kínomban megpróbáltam elébiggyeszteni, hogy echo "\n' + Self.logname + '\n" | , hátha megeszi stdin-ről, de nem tette.

Van valakinek ötlete?

power on to mail

Üdv!

Hogy tudom megoldani, hogy a gép bekapcsolása után egy mail-t küldjön egy megadott címre?

Elvileg elég lenne egy sendmail-t felrakni és mail parancs.
No de hova rakom hogy el is küldje a mail-t és ne az user mappába legyen?

Köszi!

ftp és a BASH

Sziasztok.

Sajnos külföldön vagyok, ahol igen rossz a wifi, de mégis szükségem lenne mindenféle manual olvasására -- ez nem megoldható egy hajón.
Localhoston szeretnék megvalósítani parancssorban egy könyvtárnyi file feltöltését.
Annak idején azt hiszem 7-8 éve ezt meg tudtam oldani, de nem emlékszem mr rá, hogyan tettem.

Szóval adott egy könyvtár:
/home/a/dir/*.jpg
és feltölteném ide:
192.168.12.3/gallery/2018
user: pi
pw: 1

..és gőzöm sincs, hogyan tegyem. Kísérletezni sem tudok sokat, mert solarpanellel megy mindenem.

Köz minden segítséget

pylint, django

Segítséget kérnék pylint használatához egy django projekten belül.
Valahogy nem látja a pylint a megfelelő hierarchiát, és olyanokért is panaszkodik, amiért nem kéne (No name 'models' in module 'api', Unable to import 'rest_framework.test'...). Lehet ignoráltatni bizonyos típusú hibákat, de inkább szeretném rávenni, hogy jobban értse, mi honnan jön.
A cél az lenne, hogy valódi visszajelzéseket adjon a pylint és lehessen használni CI célokra (azaz gátolja meg a fordítást, ha nagy gáz van).

Pl. erre a fájlra: https://github.com/IFRCGo/go-api/blob/master/registrations/views.py
Ezeket a hibákat adja:
E: 17, 0: No name 'models' in module 'api' (no-name-in-module)
E: 17, 0: Unable to import 'api.models' (import-error)
E:237,12: Instance of 'list' has no 'delete' member (no-member)

Erre meg: https://github.com/IFRCGo/go-api/blob/master/registrations/test_views.py
ezeket:
E: 10, 0: Unable to import 'rest_framework.test' (import-error)
E: 15, 0: No name 'models' in module 'api' (no-name-in-module)
E: 15, 0: Unable to import 'api.models' (import-error)

Egyik sem releváns.
Próbáltam ezt is használni: https://github.com/PyCQA/pylint-django .
A .pylintrc-t is szerkesztettem, pl. van benne:
init-hook='import sys,os,re; sys.path.append("/.../go-api/")'