Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.
Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.
Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.
Již tuto středu proběhne 50. Virtuální Bastlírna, tedy dle římského číslování L. Bude L značit velikost, tedy více diskutujících než obvykle, či délku, neboť díky svátku lze diskutovat dlouho do noci? Bude i příští Virtuální Bastlírna virtuální nebo reálná? Nejen to se dozvíte, když dorazíte na diskuzní večer o elektronice, softwaru, ale technice obecně, který si můžete představit jako virtuální posezení u piva spojené s učenou
… více »Český statistický úřad rozšiřuje Statistický geoportál o Datový portál GIS s otevřenými geografickými daty. Ten umožňuje stahování datových sad podle potřeb uživatelů i jejich prohlížení v mapě a přináší nové možnosti v oblasti analýzy a využití statistických dat.
Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.
Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.
#!/bin/bash mount -t cifs //pdc/Users -o iocharset=utf8,codepage=1250,username=xx,password=xxxx /mnt/pdc-users/ && sleep 2 && mount -t cifs //backupServer/users -o iocharset=utf8,codepage=1250,username=yy,password=yyyy /mnt/backupserver-users/ && sleep 2 && rsync -av --delete --exclude="*.tmp" /mnt/pdc-users/ /mnt/backupserver-users/ && sleep 20 && umount /mnt/backupserver-users/ && sleep 2 && umount /mnt/pdc-users/ && echo Povedlo se, zaloha je hotova ! | mail -s rsync xx@xxx.czTento skriptik pripoji cifs svazek naseho PDC, cifs svazek naseho backup serveru a pak je vzajemne rsyncne, nakonec oba svazky odpoji a posle mi maila ze je vsechno v poradku. Problem je ve spojeni prikazu - &&. Pokud se jakykoliv z prikazu nepovede, napr se nepodari pripojit cifs svazek, zbytek prikazu uz nedojede, nic se nedozvim a neco treba zustane primoutnute, coz se mi nelibi. Mate nekdo ideu jak to udelat tak abych do tohoto skriptu dostal podminky? Kdyz se neco neprimoutne tak aby to udelalalo toto, dyz to projde v poradkua by to udelalo toto atd. Poradte mi prosim, jsem v koncich :o). Dekuju moc
Řešení dotazu:
#!/bin/bash RET="NULL" mount -t cifs //pdc/Users -o iocharset=utf8,codepage=1250,username=xx,password=xxxx /mnt/pdc-users/ if [ $? -eq 0 ]; then RET="Nepovedl se mount1." fi sleep 2 mount -t cifs //backupServer/users -o iocharset=utf8,codepage=1250,username=yy,password=yyyy /mnt/backupserver-users/ if [ $? -eq 0 ]; then RET="$RET Nepovedl se mount2." fi sleep 2 rsync -av --delete --exclude="*.tmp" /mnt/pdc-users/ /mnt/backupserver-users/ if [ $? -eq 0 ]; then RET="$RET Nepovedl se rsync." fi sleep 20 umount /mnt/backupserver-users/ if [ $? -eq 0 ]; then RET="$RET Nepovedl se umount1." fi sleep 2 umount /mnt/pdc-users/ if [ $? -eq 0 ]; then RET="$RET Nepovedl se umount2." fi test "$RET" == "NULL" && RET="Povedlo se." echo $RET | mail -s rsync xx@xxx.cz
Jen poznámka: místo
cmd -args if [ $? -ne 0 ]; then ... fi
lze psát rovnou
if ! cmd -args; then ... fi
function chybaKonec { if [ "$?" -ge "1" ] then echo $1 exit ${2:-1}; fi }A za každý (důležitý) příkaz dej tento řádek:
chybaKonec "Selhal krok XXX";S nějakou smysluplnou hláškou samozřejmě. V proměnné
$?
je návratový kód posledního příkazu (0 = OK, všechno ostatní chyba). Ta funkce se hodí k tomu, že to máš na jednom místě a nebudeš mít těma IFama zahnojený celý skript if [ $? -eq 0 ]; then RET="…nějaká chybová hláška…" fiProto je lepší z těchto čtyř řádků udělat funkci a pak ji volat jedním řádkem:
chybaKonec "…nějaká chybová hláška…";Jednak ti to zkrátí a zpřehlední program a jednak ti to usnadní budoucí změny – třeba když budeš chtít přidat logování těchto hlášek do souboru, tak přidáš
echo $1 > /tmp/chyby.log;jen do té definice funkce a nemusíš to dělat na deseti různých místech. Navíc bych to udělal tak, že bych po první chybě skončil (
exit
), protože když se nepovede připojit souborový systém, tak nemá cenu se pokoušet z něj nebo na něj zálohovat.
Chyby patří na chybový výstup, ne na standardní. Jedničku není potřeba escapovat, naopak $1
ano. Takže bych tu funkci viděl nějak takto:
function chybaKonec { if [ $? -ge 1 ]; then echo "${0##*/}: $1" >&2 exit ${2:-1}; fi }
Tiskni
Sdílej: