2 votos

La entrada del usuario en Automator "Ejecutar Script de Shell"

Tengo una Carpeta de la Acción en un /carpeta de Volúmenes. Estoy revisando cuando un disco está montado (carpeta en /los Volúmenes creados), la comprobación de ssh a un equipo remoto. Si todos los presentes ejecutar rsync allí.

Estaba bien cuando el número de archivos fue baja. Ahora sólo rsync la "creación de lista de archivos" tiene una duración de 40 minutos. Quiero que esta acción de preguntar antes de rsync para mi decisión. Mejor con osascript.

source="/Volumes/MyDisk/FolderToSync"

user="username"
host="myhost"
port="22"
path="/RemoteFolder/"

log="$HOME/RSync_$(date +%Y.%m.%d_%H-%M-%S).log"
rm $HOME/RSync_$(date -v-1m +%Y.%m.)*.log

if [ -d "$source" ]; then

    nc -z $host $port > /dev/null   

    if [ $? -eq 0 ]; then
        touch $log;

        osascript -e 'display notification "Do you want to RSync now?" with title "ssh"'

        rsync -czvaEP --delete --log-file=$log "$source" -e "ssh -p$port" $user@$host:$path;

    fi
fi

0voto

user3439894 Puntos 5883

El uso de display notification será de ninguna utilidad ya que su resultado es ninguno, el uso de un display dialog lugar.

El seguimiento es un ejemplo de cómo lo haría:

result="$(osascript -e '(display dialog "Do you want to Rsync now?" buttons {"No", "Yes"} default button 2 with title "ssh")')"
if [ "$result" == "button returned:Yes" ]; then
    rsync -czvaEP --delete --log-file=$log "$source" -e "ssh -p$port" $user@$host:$path;
fi

Se muestra en el correspondiente código publicado en el OP:

source="/Volumes/MyDisk/FolderToSync"

user="username"
host="myhost"
port="22"
path="/RemoteFolder/"

log="$HOME/RSync_$(date +%Y.%m.%d_%H-%M-%S).log"
rm $HOME/RSync_$(date -v-1m +%Y.%m.)*.log

if [ -d "$source" ]; then

    nc -z $host $port > /dev/null   

    if [ $? -eq 0 ]; then
        touch $log;
        result="$(osascript -e '(display dialog "Do you want to Rsync now?" buttons {"No", "Yes"} default button 2 with title "ssh")')"
        if [ "$result" == "button returned:Yes" ]; then
            rsync -czvaEP --delete --log-file=$log "$source" -e "ssh -p$port" $user@$host:$path;
        fi
    fi
fi

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X