• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    DELVITLinux pro zacatecniky a obycejne uzivatele (NO FLAMES!)
    Každý kdo chce poradit ohledně linuxu je na spravném místě. Přímý následovník audítka stejného názvu. Pravidla jsou stejná jako predchozí, hlavně žádné FLAME!
    Na Hompage klubiku najdete alternativy k aplikacim. Snazim se drzet ten list v aktualizovane a hlavne zajimave alternativy, kdyby ste chteli neco pridat do listu dejte vedet.

    Jak se správně ptát:

    1) Popište příznaky problému nebo chyby co možná nejjasněji a nejpečlivěji.
    2) Popište prostředí, ve kterém chyba nastává, tj. architekturu, operační systém, aplikaci, verzi, atd. Jmenujte distribuci a verzi systému (např. Red Hat 8.0, Slackware 5.1, atd.).
    3) Popište, jak jste se k chybě dostali, a jak jste se ji pokusili odhalit, isolovat a pochopit ještě předtím, než jste se zeptali.
    4) Popište relevantní změny v konfiguraci, které jste v poslední době provedli.
    5) Pokuste se už předem zodpovědět případné doplňující otázky.
    6) Na dlouhé výpisy použijte služby na to určené - pastebin - http://pastebin.com/
    rozbalit záhlaví
    MCKIDNEY
    MCKIDNEY --- ---
    DANIELSOFT: No to pomohlo (a jako google), ale psat crawler se mi uplne nechce.

    V tuto chvili to mam v hlave jako find + file + size + name (pripony media souboru) a pak na to muzu spustit skript s "ls -i" a dohledat to. Doufal jsem ze se tomu vyhnu.
    DANIELSOFT
    DANIELSOFT --- ---
    MCKIDNEY: nevím jestli ti to pomůže, ale ls -i vypíše inode, který soubor má a to by se dalo nějak použít ve skriptu. taky počet odkazů na inode je součástí adresářového souboru, ale otázkou je, jak se k tomu jednoduše dostat.
    MCKIDNEY
    MCKIDNEY --- ---
    Tak neco na co jsem sam neprisel - jak vyuzit find ci ls pro hledani hardlinks co uz nemaji zadne dalsi linky?

    Mam slozku A) DLNA prehravac a slozku B) Repositar medii.
    Linky se vytvari z B do A, ale B neni trvale a obcas promazu.
    Zajimalo by me, jak vyhledat pomoci find soubory v A co uz nejsou v B.

    Zatim si vystacim se -samefile, ale to nepokryje soubory s rozdilnym nazvem.
    PECA
    PECA --- ---
    CHOROBA: Co to na to mám říct "ajovlastně". Dík :)
    CHOROBA
    CHOROBA --- ---
    a proc to nedas do jedny systemd unit? dyk pri startu muzes spustit jeden scrit a rpivypunuti ty service druhy....
    jinak AZ PO nastavis v ty dalsi sluzbe pomoce After=
    viz. https://www.freedesktop.org/software/systemd/man/systemd.unit.html
    PECA
    PECA --- ---
    Tak jsem tu znovu kvůli systemd :) (běhá to na Raspberry Pi 4 + Waveshare GSM/GPRS/GNSS HAT + muj-bastl)

    tl;dr - nefunguje vypnutí modemu. Ručně ano, ale přes systemd nikoli + potřebuji spustit ještě jednu službu, ale až po doběhnutí sh skriptu z té první definice.

    Není to taková tragedie, ale domnívám se, že mi chybí dostatečný vhled a spíše znalosti z Linuxu (nějaké pojmy, správné postupy apod).
    Každopádně, funguje mi startovací skript. Možná je to špatně. Potom prosím o navedení jak správně.
    Vytvořil jsem si definiční soubor muj-bastl.service a do něj napsal:
    [Unit]
    Description=Prepare environment for "muj-bastl" service
    
    [Service]
    ExecStart=/home/pi/muj-bastl/muj-bastl-init.sh
    
    [Install]
    WantedBy=multi-user.target
    Ve skriptu muj-bastl-init.sh je toto:
    #!/bin/bash
    
    # dotnet support
    export DOTNET_ROOT=/home/pi/dotnet
    export PATH=$PATH:/home/pi/dotnet
    
    # 1-Wire support
    modprobe w1-gpio
    modprobe w1-smem
    # bus access
    chmod -v a+rw /sys/bus/w1/devices/w1_bus_master?/w1_master_*
    
    # gsm/gprs power on
    raspi-gpio set 4 op dl
    sleep 3.5
    raspi-gpio set 4 dh
    
    # wait for a modem
    sleep 5
    
    # enter pin to sim card
    chat -t 8 \
    	"" "AT+CPIN?" \
    	"CPIN: SIM PIN" "AT+CPIN=3585" \
    	"OK" "AT+CPIN?" \
    	"OK" "" \
    	< /dev/serial0 \
    	> /dev/serial0
    
    # wait for a modem
    sleep 5
    
    # connect pppd
    pon rnet
    
    # wait for a internet
    sleep 10
    A to vcelku dobře funguje. Systém naběhne a během toho se zapne modem, dostane SIM PIN a funguje to jak má. Nemám ještě dodělaný spuštění samotné služby "muj-bastl", která bude obsluhovat cosi na portech a podle toho atakovat naše API v MS Azure. ALE tu potřebuji spustit až teprve po doběhnutí skriptu muj-bastl-init.sh! To nevím jak.
    Také jsem si udělal další service na vypnutí modemu, který by měl zafungovat v případě restartování či vypínání Raspberry a vypnout modem. Dokonce se to při instalaci správně linklo do příslušných složek v /etc/systemd/system/, ale modem se nevypne. To není úplně důležité, protože to má běžet furt, tudíž se to vypne typicky výpadkem elektřiny. Obsah muj-bastl-shutdown.service:
    [Unit]
    Description=Disconnect and turn off modem for "muj-bastl" service
    DefaultDependencies=no
    Before=umount.target
    
    [Service]
    ExecStart=/home/pi/muj-bastl/muj-bastl-shutdown.sh
    
    [Install]
    WantedBy=reboot.target halt.target poweroff.target
    
    a obsah muj-bastl-shutdown.sh:
    #!/bin/bash
    
    # disconnect pppd
    poff rnet
    
    # wait for a modem
    sleep 5
    
    # enter pin to sim card
    chat -t 8 \
    	"" "AT+CPOWD=1" \
    	< /dev/serial0 \
    	> /dev/serial0
    
    # wait for modem power off
    sleep 5
    
    CHOROBA
    CHOROBA --- ---
    VESNACH: pust si na par dni smokeping na svoji GW u UPC, pak jim to posli a chtej zpet penize. ;)
    VESNACH
    VESNACH --- ---
    zacala me pronasledovat takova lapalie, jadro mam 5.4.0-52 a posledni dobou, kdyz se pripojim pes ssh nekam, tak mi co 10s zamrzne na cca 1s terminal...hrozne otravna vec.

    Tipnul bych si, ze se to deje po upgrade modemu od UPC na 1gbps, ale uplne me nenapada, jak to spolehlive diagnostikovat...

    mtr treba ukazuje tohle:
    Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                                                                                                         Packets               Pings
     Host                                                                                                                              Loss%   Snt   Last   Avg  Best  Wrst StDev
     1. easybox.local                                                                                                                  90.4%   303    1.5   1.4   0.5   2.4   0.5
     2. ip-**-***-***-**.net.upc.cz                                                                                                     9.6%   303    8.9   8.7   6.5  15.5   1.3
     3. cz-prg01a-ra4-ae23.net.upc.cz                                                                                                   9.9%   303   13.0  11.5   7.0  39.6   4.3
     4. cz-pra-pop115-rb1-vla2119.net.upc.cz                                                                                           11.2%   303   12.1   9.6   6.7  28.7   2.0
     5. Cz-pra-pop50-rb1-vla2121.net.upc.cz                                                                                            10.2%   303    8.6   9.3   6.7  42.5   3.3
    90% loss na prvnim hopu se mi nezda uplne good...utp kabel je stejnej, menila se jenom krabice. Ma smysl se vrtat v nastaveni toho modemu (je to nejaky alpha demo shit od nich) nebo jim zavolat, nebo na co jeste kouknout, co myslite?
    KAERO
    KAERO --- ---
    REDSNAKE: ja mam v cronu spusteni prikazu mail (presneji skriptu ktery posle nejakou generovanou zpravu pomoci mail). jednoradkovy prikaz pro poslani emailu, jednoduche. pri instalaci mailutils jsem dal nejake defaultni nastaveni.
    Linux mail command examples – send mails from command line – BinaryTides
    https://www.binarytides.com/linux-mail-command-examples/
    VESNACH
    VESNACH --- ---
    REDSNAKE: treba pres pythoni smtplib...
    import smtplib
    from email.message import EmailMessage
    def send_mail(to_email, subject, message, server='mail.server.cz',
                  from_email='email@kdekoliv.cz'):
        msg = EmailMessage()
        msg['Subject'] = subject
        msg['From'] = from_email
        msg['To'] = ', '.join(to_email)
        msg.set_content(message)
        print(msg)
        server = smtplib.SMTP(server)
        server.set_debuglevel(1)
        server.login(from_email, 'heslokmailu') 
        server.send_message(msg)
        server.quit()
        print('successfully sent the mail.')
    
    send_mail(to_email=['email@kamkoliv.cz'],
              subject='testovaci zprava', message='obsah testovaci zpravy.')
    
    VLASTIS
    VLASTIS --- ---
    REDSNAKE:
    IMHO přímo cron ohnout nepujde, ale pujde nastavit MTA , který emaily od cron zpracovává

    zkus vyjít z tohoto
    mail - How do I make cron email my @gmail account - Ask Ubuntu
    https://askubuntu.com/questions/732/how-do-i-make-cron-email-my-gmail-account

    REDSNAKE
    REDSNAKE --- ---
    REDSNAKE: Navazuju na můj předchozí dotaz, bylo by reálné donutit cron využívat nějakou externí službu pro odesílání e-mailů? Možná si to představuju jako hurvínek válku, ale nějak to napojit třeba na gmail účet nebo něco takového, prostě něco, co vyloučí nutnost mít vlastní mail server..?Ď
    GILHAD
    GILHAD --- ---
    VYHULENY_UFO: Ja, vzhledem k referencim, jsem na systemd nikdy nepresel a rozhodne to nemam v umyslu.
    VYHULENY_UFO
    VYHULENY_UFO --- ---
    DANYSEK: ja se priznam, ze jsem se pokorne ve svem gentoo vratil po roce zpet k openrc.... systemd se mi po aktualizacich rozbijel mnohem castej, nez sem si pral.
    PECA
    PECA --- ---
    DANYSEK: Je tam, jsem pako – https://www.raspberrypi.org/documentation/linux/usage/systemd.md
    Asi mi ten systemd přišel zkraje poněkud "overkill". Hmm, jdu to načíst.

    Děkuji za nakonutí.
    DANYSEK
    DANYSEK --- ---
    PECA: pokud tam nemas nejakou historickou verzi, tak systemd tam je urcite...
    PECA
    PECA --- ---
    VYHULENY_UFO: Mrknu se, dík. Jedu to na malině s Raspbery Pi OS – ověřím, je-li tam skutečně systemd. Narazil jsem na nějaké zmínky o tomto, ale jak hledám a nevím co, tak taky často nevím, co jsem našel...
    VYHULENY_UFO
    VYHULENY_UFO --- ---
    PECA: no jesti sem pochopil dobre, mas systemd a potrebujes spoustet vlastni skripty ... ze?

    pak hledej neco v tomhle smyslu:

    What is the correct substitute for rc.local in systemd instead of re-creating rc.local - Unix & Linux Stack Exchange
    https://unix.stackexchange.com/...rrect-substitute-for-rc-local-in-systemd-instead-of-re-creating-rc

    PECA
    PECA --- ---
    Podařilo se mi zajistit, aby se mi "po spuštění" spustil nějaký-můj-skript.sh – potud dobrý. Ale zjistil jsem, že to mám na špatném místě (/ect/profiles.d/) a tím pádlem se to spustí "po přihlášení", ale ne "po spuětění bez přihlášení". Kam to mám správně umístit, aby se skript spustil vždy a pouze jednou po zapnutí a exportované systémové proměnné a path platili pro všechny uživatele a daemony? Nebo prostě "rtfm systemd" (aktuálně zápasím s "rtfm chat + pppd")?

    Cílem je připojit napájení, OS nabootuje, nastaví se nějaké HW piny (zapne se tím připojený HW), spustí se daemon, který bude sbírat data z HW a posílat do internetu.
    REDSNAKE
    REDSNAKE --- ---
    REDSNAKE: koukám na zálohy, jestli se provedly a ono prd. Tak koukám do crontab -e a tam nejsou provedeny žádné změny. Jediné co jsem od té doby na serveru provedl bylo, že jsem nainstaloval ten letsencrypt. Je to normální?
    REDSNAKE
    REDSNAKE --- ---
    REDSNAKE: "You need to permit those settings to be changed in a .htaccess file. For that, you need AllowOverride Options or AllowOverride All in a relevant section your httpd.conf file (in a <Directory> block for that directory or a parent thereof)."

    :)
    Kliknutím sem můžete změnit nastavení reklam