Szkriptek: Python, Perl, Bash, ...

dátum idő számítások

A dátumokkal játszok, és most elakadtam. Ha hozzáadnék valamennyi napot a dátumhoz, akkor ugye ez működik.:

date --date +'4 days' - bár érdekes módon sokféle variációban: 4days, 4 day, +4day, +4days szóközzel, aposztróffal, anélkül. Vajon melyik a POSIX?

Viszont engem az óra perc is érdekelne. Hogy tudok neki megadni +3 vagy 4 napot úgy hogy megmondom neki hogy az óra fix. Még nem jöttem rá a szintaxisra. Vagyis van egy  teszem azt time="11:30" meg egy daY="5" az a lényeg hogy az az időpont kell nekem, ami a változókban szerepel. A mostani változó alapján ha a jelenlegi idő 2021-12-28 14:02 akkor hogyan számolhatom ki hogy az új időpont 2022-01-02 11:30 legyen? 

date -d "11:30 Next Monday" ezt is nézegettem, a felhasználáshoz, de nem lettem okosabb. Ugyanez nem működik a +5day esetén. date -d "11:30 +5day" Az óra változik, a nap nem. A sorrend változtatása sem segít. Gondolkodtam a date +'%s' bevetésén de ahhoz meg sokat kell váltogatni, meg ki kell valahogy számolni a plusz napokat. meg a következő hetet. mert a $daY nem lesz nagyobb mint 7. Ekkor jöhet képbe a date +'%u' is. Nem egyszerű. Egyszerű megoldást keresnék.
 

script meghívás

Érdekes dologra keresnék választ, megoldást. A feladat a következő. Van 3 futtatható szkript fájlom. A,B,C
Jelenleg  a C fájlt megtudom hívni a B fájlból, és ez a C el is végzi a dolgát. Ez a C többször is lefuthat, s ennek megfelelően adatokat exportál ki. 

Viszont most felmerült az, hogy az A fájlból is szeretném meghívni, de az adatok exportálása maradjon ki, mivel csak a legelső futásakor feldolgozott adatokra van szükségem. 
Gondoltam hogy ebbe az ominózus C fájlba berakok egy feltételt, hogy azt nézze ki hívta meg, s annak megfelelően exportáljon vagy ne. De nem tudom megoldható-e ez. S igen - mindezt bash shellben.

Python scriptból exe létrehozása függőségekkel Windows alatt

Sziasztok!

Eddig elvoltam a saját környezetemben, magamnak írtam scripteket, meg írtam Flask-kel webalkalmazást. Viszont most másnak is szüksége lenne az általam írt programra. Ehhez ugye Win alá futtatható exe-t kellene létrehozni. Próbáltam a pyinstaller-t, az auto-py-to-exe-t, de a probléma azonos: honnan szedi a lefordított program a beimportált és használt könyvtárakat? A libmagic-et megtaláltam, leszedtem a whl állományt. De kellene pl. jinja2 is. Ezeket a függőségeket hogyan tudom kielégíteni a fordítás után?

Előre is köszi a segítséget!

Üdv: Laci

feltétel vizsgálat

Sajna nagyon nem fog most az agyam.

Van egy ááá a francba. Az sem jut az eszembe mi a neve annak az eszköznek, amelybe két vinyó is be / ki tehető. Hub?

Na mindegy. Van pár vinyóm, melyet azért leszoktam ellenőrizni hogy fizikailag rendben van-e (fsck), majd a jogosultságok stb. Erre írtam is egy kis bash szkriptet, mely for ciklusból UUID alapon végzi a dolgot, de most kicsit bővíteném, hogy ne csinálja meg az ellenőrzést ha az x időn belül már megtörtént.
S itt most elakadtam. Ellenőrzéskor generál egy lista fájlt alap esetben is, és úgy gondoltam hogy ennek a módosítási idejét ellenőrzöm. A feltétel tehát megvan. El is végzi a dolgát, de ki is lép ugyanakkor. Persze mert ott az exit. Ami most nem jó, mert az lenne a cél, hogy mivel akár két vinyó is lehet a hubban, így ha az egyik már rendben van, ugorjon a másikra. 
Ha az is rendben van, akkor lépjen ki. Az ellenőrzési paraméterek mind szubrutinban vannak a for ciklus nem. while do nincs a szkriptben.  

tinyurl.com -os url "visszafejtése"

Sziasztok!

Van az alábbi PHP script, ami működik egy linuxos gépen, tehát a tinyurl-ról megkapom az eredeti linket (a valami nem valós!!! :)):

<?php

$u = 'https://tinyurl.com/valami';

function reverse_tinyurl($url){
    $url = explode('.com/', $url);
    $url = 'https://preview.tinyurl.com/'.$url[1];
    $preview = file_get_contents($url);
    preg_match('/redirecturl" href="(.*)">/', $preview, $matches);
    return $matches[1];
}

echo '<a href="' . reverse_tinyurl($u) . '">Értekezlet (Google CHROME alatt nyisd meg!!!)</a>';
?>

Ezt szeretném megcsinálni Python alatt, de akárhogy küzdök, nem sikerül.

Próbálom használni a dns.resolver modult, hogy a scripten belül megadjam a DNS szervernek a 8.8.8.8-at, de Timeout-ot dob a script.

 

Van ötletetek? A resolv.conf-ban benne van egyébként a 8.8.8.8

elemek/számok megszámlálása egy fileban

Sziasztok,

Van egy ilyen file formátumom (sokkal több számmal):

3,30,45,67,70
19,31,35,40,63
4,8,33,38,80
12,22,71,76,87
32,45,47,74,85
23,39,42,48,61
12,38,58,60,87
2,28,49,60,74
30,47,57,68,77
2,13,17,29,37
7,19,26,56,63
 

Szeretném benne megkeresni, hogy 1-30 -ig a számok hányszor fordulnak elő.

Eddig itt tartok:

szamoloFile = open("source.txt", "r")
data = szamoloFile.read()

for k in range(1,30):
    kiszamolt = data.count(k)
    print(k, kiszamolt)

Viszont erre kapok egy hibát:

kiszamolt = data.count(k)
TypeError: must be str, not int

Jó volna, ha az 1-s szám keresésnél az 10,11,12,13 stb nem lenne találat és így tovább a 2-3-4-5 stb számoknál.

 

Ötlet esetleg?

 

Köszönöm

a.

[MEGOLDVA] script/alkalmazas logfile szuresere adott mintara

Hali,

 

van egy alkalmazas naplom.  Minden egyes elinditott process ebbe a file-be rakja az uzeneteket (alkalmazas processek).

 

Ezt szeretnem a process id alapjan szurni. Utolag viszonylag egyszeru, mert egy grep-pel a pid-re es meg is van az eredmeny. De van amikor a process indulasatol eloben szeretnem nezni.

A process indulasakor kapom meg pid-et, igy amikor atvaltok a masik ablakra es az elokeszitett tail nap.lo| grep {PID} -et kitoltom gyakran elofordul, hogy mar le is futott.
Persze az is, hogy meg el sem indult (gyujti a fuggosegeket,) ...

Mielott nekiesek egy ilyen script megirasanak, es eltoltok vele heteket, erdekelne, hogy talalkozott-e mar valaki ilyennel? Marmint ami buffereli a logot, majd amikor megkapja a filter sztringet, akkor az addigi sorokat egyezes eseten kiirja, a kesobb jovoket meg mint a tail+grep kiloki?

 

Megoldas:

#!/bin/bash

PID=$1
LOG="nap.lo"

BUFF='grep ${PID} ${LOG}'
if [ $? -eq 0 ]; then
  # get the linenumber of the last match
  LINENUM=`grep -n "${BUFF##*$'\n'}" ${LOG}| cut -f1 -d:`
  # we do not need duplication from the grep and tail
  ((LINENUM=LINENUM+1))
else
  LINENUM=0
fi

echo "${BUFF}"
tail -F -n +${LINENUM} ${LOG} | grep ${PID}

Hogy kell ezt a titkosított videót dekódolni shellben?

Le akarom menteni ezt a videót.

F12 -> Development tools -> Network fülön láthatóak a különválasztott videofájlok (.ts) és a hangfájlok (.aac).

Példa a nulladik videóra, illetve a nulladik hangra.

Ez itt pedig az .m3u8 fájl amelyik tartalmazza a videofájlokat, ez meg a hangfájlokat. Ezekben a fájlokban található a kulcs elérhetősége, ott van az init vector is: IV=0x12345678901234567890123456789012.

Lementettem ezeket a fájlokat offline, és úgy rendeztem, ahogy az .m3u8 elvárja, és a VLC el is kezdi lejátszani (durván szaggat), szóval működhet a dolog.
 

Szeretném az összes videót/hangot dekódolni shellben, hogy aztán összefűzhessem őket ffmpeg-gel. De sehogy sem boldogulok az openssl progival. Mindig "bad magic number" hibaüzenetet kapok.

Tehát lementettem a nulladik videót, illetve a kulcsot (fájlnév: e21564b9-8c10-46a8-b713-93c6f32fc509) ugyanabba a folderba, majd kiadtam ezt:

openssl enc -d -aes128 -in index_4_0.ts -pass file:e21564b9-8c10-46a8-b713-93c6f32fc509  -iv 0x12345678901234567890123456789012

Próbáltam a kulcsot hexában megadni, úgy se volt jó. Tudja valaki hogy kell dekódolni a videót?

prompt

Sziasztok.

Kicsit meguntam, hogy ha jó mélyen benn vagyok egy könyvtárban, a sor végén kell elkezdenem írni a parancsot. Amikor meg kapok egy szkrollozható parancssori kimenetet, az elejét úgy kell kibogozni...

Új sorba kerül a prompt, és függőleges vonallal jelzem, hol kezdődik.

# .bash.rc HEKK

if [ $(id -u) -eq 0 ];
then # root felhasznalokent:
    PS1="\e[0;31m┌──••[\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h:\w\a\]$PS1]\e[0;31m────\n💀\n└─# \e[1;32m"
else # normal userkent:
    PS1="\e[0;34m┌──••[\[\e]0;\u@\h:\w\a\]$PS1]────\n\e[0;34m└─> \e[0;37m"
fi

Rootként a vonalak átváltanak pirosra, és egy kedves kis halálfej is jelzi, hogy alvajáróként inkább máshol kotorásszak:
 

┌──••[user@gollum:~$ ]────
└─> cd ..
┌──••[user@gollum:/home$ ]────
└─> sudo bash
[sudo] user jelszava:       
┌──••[root@gollum:/home# ]────
💀
└─#

Kíváncsi vagyok, ki miként működteti a parancssorát. A csiliviliből itt is ki lehet nőni, ahogy az ember a compizból is visszatér az xfce4 alapjához. Viszont egy idő után a terminálon tényleg kiesik az ember szeme...

(PCRE) RegEx Header From mezo non-ASCII karakterek torlese/atirasa

Sziasztok!

szeretnem a Mail Header From mezojet egy RegEx -szel (PCRE) modositani.

egy

s/([^\x00-\x7F])/_/g

szepen mukodik, de ha szeretnem belevenni, hogy From -mal kezdodjon a sor:

(^From\:\s)....

akkor nyilvan mar nem mukodik.

Lehet RegEx -szel csak egy adott csoportban egyezeseket cserelni, vagy valahogyan rekurziv modon cserelni [tisztan RegEx -szel (PCRE)]?