BASH - executa comandos antes e depois do loop

1

Estou tendo um problema com um script de shell. É algo tão estúpido que quase tenho vergonha de perguntar, mas não consigo entender.

Este é o script:

#!/bin/bash

MAGAZINE="
    192.168.49.3
    192.168.49.5
"

SYNC="192.168.250.40"

#mount //$SYNC/PozeSync /home/alex/pozesync -o user=magazin,password=,sec=ntlm &&

for magazin in $MAGAZINE; do
    if ping -c 1 -t 1 $magazin &> /dev/null
        then
            echo "$magazin is down"
        else
            echo "$magazin is up"
            mount -t cifs //$magazin/PozeUpload /home/alex/mounts -o user=Administrator,password= &&
            rsync --bwlimit=1000 -r /home/alex/mounts/* &&
            rm -rf /home/alex/mounts/* &&
            umount /home/alex/mounts &&
            echo "$magazin done" >> sync.log
    fi
done

#umount /home/alex/pozesync

Como você pode ver, há duas linhas comentadas. Se eu descomente-los, o script pára de funcionar corretamente. Ele não monta a pasta pozesync e, em seguida, lança alguns erros do samba tentando carregar as pastas no loop.

Se eu executar os comandos mount / umount sem o loop, ele funcionará bem. Se eu executar o loop sem os comandos mount / umount, ele funcionará bem.

Execute-os juntos no entanto e ...

192.168.49.3 is up
rsync: link_stat "/home/alex/mounts/*" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1165) [sender=3.1.1]

O que estou fazendo de errado?

    
por Faryus 17.02.2015 / 13:54

1 resposta

0

Esse foi meu erro:

rsync --bwlimit=1000 -r /home/alex/mounts/* &&

deve realmente ser

rsync --bwlimit=1000 -r /home/alex/mounts/ &&

Felicidades!

    
por 17.02.2015 / 17:34