Egy samba megosztasra szeretnek backupot kesziteni.
A bash scriptnek be kell csatlakoztatnia egy samba megosztast, majd arra elvegezni a mentest, majd umount.
Ha a script nem tudja valami miatt csatlakoztatni a megosztast irjon mailt.
A gondom csak az, hogy ha a samba csatlakozas nem sikerul, a script nem fut tovabb...
igy probal mountolni:
mount -t cifs "//$IP/$SMBNAME" $BDIR -o username=$SMBUSER,password=$SMBPASS
tehat ha sikeres a mount akkor minden oke, elkeszul a mentes, de ha nem sikeres, akkor a script futasa itt (a mount paracs utan) megall.
ez vajon miert van?
koszi elore is a szakertelmet:)
pero
- 1857 megtekintés
Hozzászólások
Próbáld meg a kimenetet átirányítani, a /dev/nullba, akkor az hibakimenet nem kever be...bár ez csak egy ötlet!
- A hozzászóláshoz be kell jelentkezni
igen ez mar megtortent, sajnos nem segitett
- A hozzászóláshoz be kell jelentkezni
Bár az előző is csak hibakeresés miatt volt célszerű, én kipróbálnám smbmount-al is, hátha, plusz, végignézném a jogosultságokat...számtalanszor bukik meg itt a mutatvány!
Üdv,
peep
- A hozzászóláshoz be kell jelentkezni
el kell folytani a mount stderr kimenetét és utána levizsgálni a $? változó tartalmát.
ha 0 akkor minden ok, ha !=0 akkor bukta, mehet az email
--
\\-- blog --//
- A hozzászóláshoz be kell jelentkezni
ezt az elfolytast kicsit reszletezned? :)
- A hozzászóláshoz be kell jelentkezni
mount ..... 2>/dev/null
--
\\-- blog --//
- A hozzászóláshoz be kell jelentkezni
sajnos igy is kilep a mount utan
- A hozzászóláshoz be kell jelentkezni
de a $? erteke nem 0
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Így már értem mit akartál mondani. Jelzem, ez az izé amire gondolsz, az elfojt, és nem az elfolyt. Mondjuk ha azt írtad volna, hogy (pl.) eldobjuk az stderr-t, lehet hamarabb rájövök :-)
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
mount ... && \
rsync -avu ... && \
umount
vagy hasonló
- A hozzászóláshoz be kell jelentkezni
ezzel csak az a gond, hogy ha nem sikerul a mount akkor gebasz van :)
a sikeres mountot szeretnem ellenorizni.
- A hozzászóláshoz be kell jelentkezni
ellenőrizni? mire gondolsz? akkor
ping -w1 -c1 sambahost || exit 1;
mount || exit 1;
# vagy még pluszban ez is akár, de felesleges ellenőrzés szerintem
mount | grep sambahost || exit 1;
backup
umount
- A hozzászóláshoz be kell jelentkezni
ellenorzest azert szeretnem, mert ha a mount valami miatt nem sikeres, pl a tavoli NAS ki van kapcsolva akkor a mentes igaz lefut, de nem a tavoli gepre kerul, hanem csak belerakja a konyvtarba ugyanazon a gepen.
A ping nem eleg, mert attol, hogy ping meg nem bizos a sikeres mount
de ugyebar sikertelen mount eseten kilep a script, nincs lehetosegem igy ellenorizni es emailt kuldeni a hibarol.
- A hozzászóláshoz be kell jelentkezni
habár már megoldottad látom, azért beírom ide.
ha a sikertelen mount-nál akarsz futtatni exit-en kívűl mást is, akkor így csinálnám:
mount ... || ( echo hiba a felcsatolas kozben | sendmail ... ; echo akarmi; exit 1 )
backup
umount
:)
- A hozzászóláshoz be kell jelentkezni
Ha a script 'megall', azaz nem lep ki, akkor latnod kell a processzek kozott a futo scriptet...
Kellene az egesz script.
- A hozzászóláshoz be kell jelentkezni
felreerteted vagy rosszul fogalmaztam
a script nem megall ott a futasban, hanem kilep, ugy hogy a mount utani resz nem fut mar le
- A hozzászóláshoz be kell jelentkezni
nekem véletlenül van egy ilyen szkriptem, és ugyanúgy backup-ot csinál :)
valami dereng, hogy szívtam én is a szkriptből mountolással valamiért, ha jól emlékszem, még egyszer olyat is kiköpött, hogy ilyen sorrendben voltak a paraméterek, mint nálad, azaz a '-o' a végén... meg a username/password-del is ha jól rémlik voltak gondok, úgyhogy inkább credentials fájlt választottam.
valamint a szkript mountolás előtt mindenféle ellenőrzéseket csinál, pl. smbclient-tel megnézi, hogy elérhető-e a gép, megvan-e rajta a megosztás, ilyesmi.
- A hozzászóláshoz be kell jelentkezni
van-e kedved megosztani azt a scriptet? :)
- A hozzászóláshoz be kell jelentkezni
Szia, en is csinaltam egy ilyen scriptet. Az enyem egy debian szerveren fut es egy routerre masolja a backupot (amiben van egy merevlemez).
Nekem ez igy mukodik:
### MOUNT
# mount external drive if not already mounted
EXTERNAL_FOLDER='//192.168.0.1/projects'
MOUNT_POINT='/mnt/external'
SUCCESS=1;
TRY=0;
while [ $SUCCESS -ne 0 ] && [ $TRY -lt 3 ]; do
let TRY=TRY+1
# check if the drive is mounted
mount | $GREP $MOUNT_POINT > /dev/null
if [ $? -ne 0 ]; then
# try to mount
mount.cifs $EXTERNAL_FOLDER $MOUNT_POINT -o username=$USER,password=$PASS
SUCCESS=$?
else
SUCCESS=0
fi
done
if [ $SUCCESS -ne 0 ]; then
log_error "Couldn't mount external drive $EXTERNAL_FOLDER to mount point $MOUNT_POINT";
# send mail if error
send_mail
exit
fi
### END MOUNT
- A hozzászóláshoz be kell jelentkezni
ez mukodik :)
koszonom, orok hala :)
- A hozzászóláshoz be kell jelentkezni
Par tipp:
- Script belso valtozokra kisbetus irasmod ajanlott
- Mivel ahogy nezem, linuxon /etc/mtab-bol mukodik a mount, ezert a 'grep $mount_point' /etc/mtab' is eleg
- grep -q -val nem kell elnyelned a kimenetet, return value-nak 0-t ad vissza, ha van talalat, 1-et, ha nincs
- "mount_point" csak akkor jo, ha mas mountolt konyvtar neve nem tartalmazza a keresett nevet substringkent... (pl ha /usr es /usr/local kulon filesystem) - ilyennel egyszer az eletben nagyon nagyot lehet szopni!
Szerintem ez egy egesz jo megoldas a fentiekre:
grep -q " $mount_point " /etc/mtab && echo "$mount_point is currently mounted according to /etc/mtab"
szerk.: NEM jo, meg javitani fogom ;-)
szerk2. javitva! ;-))
Mint lathatod, itt a mount point elott-utan levo szokozoket is grepelem, ezzel kivedheto a fenti problema.
Hasonlokeppen felesleges SUCCESS-re tesztelni, eleg ennyi:
mount.cifs $EXTERNAL_FOLDER $MOUNT_POINT -o username=$USER,password=$PASS || \
log_error "Couldn't mount external drive $EXTERNAL_FOLDER to mount point $MOUNT_POINT";
- A hozzászóláshoz be kell jelentkezni
Koszi.
- A hozzászóláshoz be kell jelentkezni
"Mivel ahogy nezem, linuxon /etc/mtab-bol mukodik a mount,"
Nagypapa, szemuveget tedd fel. A /proc/mounts -bol menik. Es nem grep hanem fgrep, mert a / specialis jelentesu.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
> nem grep hanem fgrep, mert a / specialis jelentesu.
Ezt kifejtenéd, hogy melyik grep-nél speciális a / és mit jelent? Csak mert ilyesmiről szerintem én nem hallottam még eddig.
- A hozzászóláshoz be kell jelentkezni
$ uname
Linux
$ strace -f mount 2>&1 | grep "/proc/mounts"
$ strace -f mount 2>&1 | grep "/etc/mtab"
open("/etc/mtab", O_RDONLY) = 3
$
Megy greppel is. A nagypapara hadd ne reagaljak.
- A hozzászóláshoz be kell jelentkezni
Ez nem jo?
if mount -t cifs "//$IP/$SMBNAME" $BDIR -o username=$SMBUSER,password=$SMBPASS
then echo oke, mount jo
else echo nemjo
fi
Aztan persze a then/else helyere azt irsz, amit szeretnel.
- A hozzászóláshoz be kell jelentkezni
Mi lenne, ha elfelejtenéd a mount, másol, ellenőriz, umount mókát, és kb. két sorban megoldanád rsync használatával az egész másik_gépre_másolás mizériát?
- A hozzászóláshoz be kell jelentkezni