Portál AbcLinuxu, 12. května 2025 04:40
No vypadá to jako nějaký úkol, takže spíš než hotové řešení ti napíšu po čem koukat.
man date
– kvůli datu> a další
– přesměrování výstupu do souboruman md5sum
– vypočte md5scp
nepoužívám``
– po vložení příkazu do těhle uvozovek(?) ho můžeš použít jako obsah proměnné, dalo by se říct, že to výstup programu převede na string.
Věnoval jsi tomu skoro hodinu, hezky :D Co za to, že ti ho někdo napíše ?
přesně...už jsem něco napsal, ale píše mi to syntax error, přesně jak jsi napsal, porovnání toho otisku md5sum v tom vytvořeném souboru a toho zkopírovaného: napsal jsem:
mohl by to někdo prosím opravit:)
#!/usr/bin/bash
OTISK=md5sum soubor /linux (tady nevím jak mám zadat tu cestu)
OTISK2=md5sum soubor /zajic
# Vytvorim si nějakej soubor s aktuálním datem
date > soubor
# SSH linux
ssh linux md5sum soubor
# Zkopiruju souboru nekam
scp soubor linux:zajic
if [ "OTISK" == "OTISK2" ]; then echo "Otisky jsou stejné"
if [ "OTISK" != "OTISK2" ]; then echo "Otisky nejsou stejné"
Pokud chces ulozit vystup prikazu do promenne, musis pouzit jednu z nasledujicich konstrukci:
PROMENNA=`prikaz`
nebo
PROMENNA=$(prikaz)
date > soubor;
zkopírování na kmlinux pod názvem "zajic"
scp soubor kmlinux:~/zajic
ověření jestli zajic a soubor maji stejný md5sum
ssh kmlinux:~/zajic md5sum zajic|sed "s/zajic/soubor/"|md5sum -c
nevím jestli je to přesně to co chcete, ale vycházet z toho určitě půjde
ps. co budete dělat až slečna dostane druhej DÚ?
To jsem rád...v manuálu jsem si našel to co píše wamba, že ten md5sum -c kontroluje otisky...takže když jsem to celé upravil, a spustil, tak mi vyskočila hláška V POŘÁDKU, takže to asi znamená že to ty skripty zkontrolovalo...ale já bych tam teď potřeboval vložit podmínku, nejspíš if, takovou která mi bude řikat že jestli jsou stejné (v pořádku) tak aby mi to napsalo (echo "Otisky jsou stejné" no a to nevím jak udělat..a pak si myslím že by skript byl hotový, jo a ještě moc nechápu co znamená to sed.
aktuální skript:
#!/usr/bin/bash
# Vytvorim si nějakej soubor s aktuálním datem
date > soubor
# Zkopiruju soubor na kmlinux pod jiným názvem
scp soubor kmlinux:~/zajic
# Zkontroluji jestli mají soubor a zajíc stejné otisky
ssh kmlinux md5sum zajic |sed "s/zajic/soubor/" |md5sum -c
sed s/zajic/soubor/
změní "zajic" na "soubor"
zkuste spouštět postupně
ssh kmlinux md5sum zajic
ssh kmlinux md5sum zajic |sed "s/zajic/soubor/"
k tomu echu co využít &&
sed
mění pouze výstup md5sum
, ale pouze první část ne hash. Do souboru "soubor" ani "zajic" vůbec nezasahuje, tam je pořád čas.
&&
se používá jako "and"
podobně ||
jako "or"
zkuste true && echo "pravda" || echo "lez"
resp. false && echo "pravda" || echo "lez"
ssh server md5sum soubor|sed 's/soubor$/zajic/'| md5sum -c >/dev/null 2>&1 && echo "pohoda"|| echo "nn"
ale pomalu se v něm začínám ztrácet sám, tak že doporučuji z toho pouze vycházet a vhodně upravit (rozdělit, ...)
>/dev/null
znamená, že standartní výstup je přesměrován do "/dev/null", tedy bude ztracen
2>&1
že bude standartní chybový výstup přesměrován na standartní výstup
celkově to znamená, že veškerý výstup z předešlého příkladu se nezobrazí.
#!/usr/bin/bash # Vytvorim si nějakej soubor s aktuálním datem date > soubor # uložim si md5sum # | roura přesměrovává výstup jednoho programu na vstup druhého # cut -d" " -f 1 výstup rozseká a vrátí první položku (checksum) LOCALSUM=`md5sum soubor | cut -d" " -f 1` # Zkopiruju soubor na kmlinux pod jiným názvem scp soubor kmlinux:~/zajic # uložím si checksum vzdáleného souboru REMOTESUM=`ssh kmlinux md5sum zajic | cut -d" " -f 1` if [ "$LOCALSUM" == "$REMOTESUM"]; then echo "Hurá, řetězce jsou stejné" else echo "Něco se posralo" fi
#!/bin/bash SOUBOR1=$1 SSHSERVER=$2 SOUBOR2=$3 date > ${SOUBOR1} OTISK1=$(md5sum ${SOUBOR1}); OTISK1=${OTISK1% *} scp ${SOUBOR1} ${SSHSERVER}:${SOUBOR2} OTISK2=$(ssh ${SSHSERVER} md5sum ${SOUBOR2}); OTISK2=${OTISK2% *} if [[ "${OTISK1}" == "${OTISK2}" ]]; then echo "Stejny otisk: ${OTISK1}" else echo "Otisky jsou ruzne: ${OTISK1} ${OTISK2}" fi
./skript.sh soubor kmlinux zajic
ssh kmlinux md5sum zajic|sed "s/zajic/soubor/"|md5sum -c
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.