Szkriptek: Python, Perl, Bash, ...

A Discord botom nem válaszol a parancsokra

Sziasztok! Elkezdtem fejlesztgetni egy Discord botot python programozási nyelvben a discord.py használatával. Eddig hibátlanul működött most meg fogta azt nem működöik. Mikor lefutattom a python fájlt a bot csatlakozik a Discord-hoz de a parancsai nem működnek beírhatom bármelyiket nem válaszol egyikre sem, ha beírok egy olyan parancsot ami nem is létezik arra sem ír hibát a konzol pedig kéne neki. Visual studio code-ban írom és az se talál semmilyen hibát a kódban.Valaki tud valami magyarázatot arra és esetleg megoldást is hogy mi lehet a probléma? 

bash argumentumok továbbadása

Sziasztok! Vegyük az alábbi szkriptet, amit meghívok idétlen escapelt spaceokkal, és szeretném a szriptből ezeket megőrizve továbbadni. script.sh :

#!/bin/bash

PULSE_SINK="${some_value}" ${*} &
./script.sh ffplay "Egy\ video\ file.mp4"

Itt az ffplaynek fontos, hogy az "Egy\ video\ file.mp4" egy argumentumként érkezzen.

Ez nemcsak ffplay és ffmpeg-gel lesz használva, és a fileok spacementesítése nem jön szóba. Ötlet?

Regexp magus van itt? :)

parsolnom kene ilyen parametereket:

param1=abc

param2 = abc

param3 = "ab'c"

param4='a"b"c'

param5="abc=def"

egyaltalan megoldhato ez egy regexp-el? (most karakterenkent dolgozom fel...)

lenyeg hogy lehet ' es " is az idezojel (de nem is kotelezo) es azon belul a masik fajta idezojel sima karakterkent mukodik.

es akkor meg a \' nem is neztuk, de az talan nem is kell.

pythont hasznalok, ami elvileg perl regex kompatibilis nagyjabol...

[Megoldva] Időzítő bash script és cron

Kicsit agyaltam és lehet, hogy túlgondoltam az egészet. Majd ti megmondjátok, hogy hülye vagyok. Mindegy. Működik a következő script és crontab kombó a következő beállításokkal?

Hétfőn 20-kor leáll keddtől-csütörtökig 18-kor leáll, pénteken 16-kor leáll és minden hétköznap reggel 7.30-kor bekapcsol.

#!/bin/bash

current_day=$(date +%u)  # A hét napjának számát tároljuk el (1-7, hétfőtől vasárnapig)

case $current_day in
    1)  # Hétfő
        wake_after_minutes=690
        ;;
    [2-4])  # Kedd, Szerda, Csütörtök
        wake_after_minutes=810
        ;;
    5)  # Péntek
        wake_after_minutes=3810
        ;;
    *)  # Egyéb napokon
        wake_after_minutes=0
        ;;
esac

sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
sh -c "echo $(date '+%s' -d "+ $wake_after_minutes minutes") > /sys/class/rtc/rtc0/wakealarm"
shutdown -h now

És a crontab:

0 20 * * 1

0 18 * * 2-4

0 16 * * 5

Működhet a dolog?

[Megoldva] Szerver ütemezett be- és kikapcsolása

A kikapcsolással ugye nincs gondom. Cronrabba a megfelelő bejegyzés és rendben van. De a bekapcsolás már problémásabb. Találtam egy posztot, de nem tudom értelmezni az ott látható bash scriptet. Ebben kérem a segítségeteket:

/root/bin/shutwake.sh

# unset alarm, set new time
sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm" 
sh -c "echo `date '+%s' -d '+ 600 minutes'` > /sys/class/rtc/rtc0/wakealarm" 
/sbin/poweroff

# Then you need to add a line in cron to shutdown:

0     23      *       *       *       /root/bin/shutwake.sh

Ebből azt értem, hogy este 11-kor lefutassa a shutwake szkriptet. De mi is van benne? Mi is ez a wakealarm? Amit szeretnék: minden reggel mondjuk 6-kor bekapcsol a szerver és 22-kor kikapcsol.

python-gtk2 varazslat

Sziasztok!

Van par regebbi programocska/csomagocska ami idovel kikerult a debian repobol mert nagyon python2-ben irtak meg. Marmint igen, megirtak anno python-ban, tok jol mukodott, koszonik szepen, volt par fuggosege, de megy, ment. A kerdes az hogy van-e valami "sztenderd" modja hogy egy ujabb vagy relative ujabb (pl debian/bullseye) ala visszavarazsoljuk a python-gtk2 (meg ehhez hasonlo, toolkit jellegu) csomagokat? Ezekben a relative ujabb linuxokban a python2 meg ott van, de mar a bindingok kevesse... 

thx, A.

TCP socket, programozás javaslataitok

Sziasztok!

Szeretnék 10 darab ip eszközről "folyamatosan" adatot olvasni egy központi feldolgozó helyen. Ezt milyen lehető legkisebb erőforrást igénylő dologgal oldanátok meg?

 

A 10 végpont adatforgalma nagyon pici. 1 ponton maximum 20 karakter információra van szükség abban a másodpercben. Mivel nincs eseményre beküldés (eszköz nem tudja), ezért a folyamatos hallgatózásra gondoltam.

Alap ötletem egy végtelen php script volt, ami minden másodpercben zárja nyitja a kapcsolatot, majd ha van adat az letárolom egy adatbázisban. Ezt erőforrás zabalásnak érzem, nem tudom mi a jobb az ilyen "stream"melésre.

Köszönöm a tanácsaitokat.

[megoldva] Ansible probléma: map filter használata string tömbön

Sziasztok!

Egy érdekes problémába futottam bele mostanában. Egy kicsit összetettebb adatstruktúrával dolgozom és a lényeg az, hogy ki szeretném nyerni belőle a benne levő fájl path-okból egy csak fájl path-okból álló tömböt, aminek az elemein egyenként (de egy lépésben) végre szeretném hajtani a dirname filtert, vagyis megkapni a path könyvtárra vonatkozó részét. Ezt sajnos nem sikerült abszolválnom eddig. A második map hívás - úgy tűnik - a sztringekből álló tömböt különálló karakterekre bontja, és arra hajtaná végre a dirname filtert, és az nekem nem lesz jó.

Íme egy playbook ami nálam ezt a viselkedést produkálta:

---
- name: "map() test"
  hosts: localhost
  vars:
    test_array:
      first:
        - "./a/b/c.json"
        - "./a/b/d.json"
      second:
        - "./a/x/e.json"
        - "./a/x/f.json"
        - "./a/x/g.json"
      third:
        - "./a/y/h.json"
        - "./a/y/i.json"
      fourth:
        - "./a/z/j.json"
        - "./a/z/k.json"
  tasks:

    - name: debug vars 
      ansible.builtin.debug:
        msg:
          - item: "{{ item  }}"
      loop: "{{ test_array | dict2items | map(attribute='value') | map('dirname') | join }}"

A kérdés: hogyan kellene ezt rendesen csinálni?

[MEGOLDVA] rsync logjának feldolgozása

Sziasztok,

Egy olyan problémába ütköztem, hogy adott egy többszörös rsync script, ami loggolásra kerül, és szeretném összesíteni az átvitt file-oknak a nagyságát. Azt hittem, hogy ez elég egyszerű lesz, mert egyszerűen greppelem azt a sort ami kiírja minden egyes rsync file átvitelének méretét, és összeadom. Ez ugye egyszerű:
 

cat rsync.log | grep "transferred file" | cut -d" " -f 5 | awk '{ SUM += $1} END { print SUM }'

Viszont a probléma, hogy nem konzekvensen van a mértékegység, hiszen ez lehet K, M és G is hozzáírva, így nem tudja összeadni, vagyis ezek bár sed-el ki lehetne törölni, de ugye a helyiértéket is hozzá kellene igazítani mielőtt összeadom.
Tud valaki erre egy "egyszerű" megoldást?