1 votos

Comprobar el estado del FTP mediante AppleScript

Tengo una aplicación AppleScript Automator que, al hacer doble clic, abre el FTP y muestra una alerta confirmando el mismo. Funciona perfectamente como se espera. Sin embargo, quiero hacerla un poco más intuitiva para que abra el FTP SOLO si el FTP no está ya abierto. Si el FTP ya está abierto en mi sistema, la aplicación debería cerrarlo.

Así que, básicamente, quiero utilizar la aplicación como un interruptor de palanca que abre o cierra el FTP en función de su estado actual. El código que estoy usando actualmente para abrir el FTP y mostrar la alerta es el siguiente:

set ipaddr to IPv4 address of (get system info)
set sun to short user name of (get system info)
do shell script "sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist" with administrator privileges
tell application "Finder" to display alert "FTP Launched and ready for file-transfer" & character id 8233 & character id 8233 & "User Name: " & sun & character id 8233 & "IP address: " & ipaddr

¿Puede alguien indicarme la dirección correcta? ¿Hay alguna variable del sistema que se pueda utilizar para recuperar el estado del FTP? En la Terminal, podría usar esto:

ftp localhost

Y los resultados me dirían si está abierto o cerrado. Pero, ¿cómo puedo hacer que AppleScript sepa lo mismo?

Información adicional: Salida de " ftp localhost " en Terminal

Este es el resultado de ftp localhost cuando el FTP está cerrado:

enter image description here

Y este es el resultado cuando el FTP está abierto:

enter image description here

Aquí, simplemente le doy a return sin ninguna entrada y entonces da esto:

enter image description here

2voto

jojayontour Puntos 36

Esto funciona como una prueba de la cáscara, si usted reemplaza con su objetivo.

echo "QUIT" | telnet <host> ftp 2>&1 | grep  "Escape character is" > /dev/null

Apenas utilizamos herramientas complejas, simplemente enviamos un comando al servidor que hace que cierre nuestra conexión. Si esto funciona, el servidor ftp está funcionando. Si no pudimos conectarnos, esta línea devuelve 1 Si no, devuelve 0 .

Digerido a un AppleScript es algo así como

set hostn to <host>
try
    do shell script "echo \"QUIT\" | telnet " & hostn & " ftp 2>&1 | grep  \"Escape character is\" > /dev/null"
    display dialog "Online."
on error
    display dialog "Not online."
end try

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