Convertendo Ação Automático no AppleScript para Bash Script -- applescript campo com automator campo com bash campo com ftp camp apple Relacionado O problema

Converting Automator Action in applescript to bash script


0
vote

problema

português

Acabei de escrever um aplicativo automático usando o AppleScript (junto com algumas linhas de bash) para iniciar o FTP com um único clique. No entanto, corre mais do que um tad lento. Aqui está o código:

  set ftpstatus to "off" try     do shell script "echo "QUIT" | telnet 127.0.0.1" & " ftp 2>&1 | grep  "Escape character is" > /dev/null"     set ftpstatus to "on" on error     set ftpstatus to "off" end try if (ftpstatus = "off") then     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 & character id 8233 & "Address: ftp://" & ipaddr & ":21" & character id 8233 & "User Name: " & sun else     do shell script "sudo -s launchctl unload -w /System/Library/LaunchDaemons/ftp.plist" with administrator privileges     tell application "Finder" to display alert "FTP session closed" end if    

Aqui está o que o código faz:

    .
  1. Verifique se o servidor FTP está sendo executado
  2. se sim, desligue-o e jogue uma caixa de mensagem dizendo "FTP Session Fechado"
  3. se não, ligá-lo e jogar uma caixa de mensagem dizendo "Sessão FTP Abrir" junto com meu endereço IP e nome de usuário

Este script funciona como charme, mas já que é muito lento, eu estou querendo saber se há alguma maneira de convertê-lo para um script de shell bash. Isso deve acelerar muito as coisas. Alguma sugestão?

english

I just wrote an Automator app using AppleScript (along with a couple of bash lines) to start FTP with a single click. However it runs more than a tad slow. Here's the code:

set ftpstatus to "off" try     do shell script "echo \"QUIT\" | telnet 127.0.0.1" & " ftp 2>&1 | grep  \"Escape character is\" > /dev/null"     set ftpstatus to "on" on error     set ftpstatus to "off" end try if (ftpstatus = "off") then     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 & character id 8233 & "Address: ftp://" & ipaddr & ":21" & character id 8233 & "User Name: " & sun else     do shell script "sudo -s launchctl unload -w /System/Library/LaunchDaemons/ftp.plist" with administrator privileges     tell application "Finder" to display alert "FTP session closed" end if 

Here's what the code does:

  1. Check if FTP server is running
  2. If yes, turn it off and throw a message box saying "FTP session closed"
  3. If no, turn it on and throw a message box saying "FTP session open" along with my IP address and username

This script works like charm but since it's too slow, I am wondering if there's any way to convert it to a bash shell script. That should speed up things a lot. Any suggestions?

           

Lista de respostas

2
 
vote
vote
Melhor resposta
 

Eu não tenho certeza que entendo corretamente - se na terceira linha do seu script você estiver verificando se abcdefghijklmn4 serviço está sendo executado você pode usar o seguinte script:

  #!/bin/bash                                                                                                                     launchctl list | grep ftpd  if [ $? != 0 ]; then     IPADDR=$(ifconfig -a | perl -nle'/(d+.d+.d+.d+)/ && print $1' | grep -v 127.0.0.1)     launchctl load "/System/Library/LaunchDaemons/ftp.plist"     osascript -e "tell application "Finder" to display alert "FTP Launched and ready for file-transfer" & character id 8233 & character id 8233 & character id 8233 & "Address: ftp://" & "$IPADDR" & ":21" & character id 8233 & "User Name: " & "$USER"" else     launchctl unload -w "/System/Library/LaunchDaemons/ftp.plist"     osascript -e 'tell application "Finder" to display alert "FTP session closed"' fi    

Execute este um sudo . Explicação:

  • para verificar se o trabalho está executando o uso launchctl list .
  • Para obter o endereço IP rapidamente use meu script Perl (você pode querer utility0 Diferentemente para se livrar de endereços IP adicionais.
  • o único problema agora é que finder app não é trazido à frente, mas isso pode ser resolvido se necessário.
 

I'm not sure I understand correctly - if in the third line of Your script You're checking whether ftp service is running You can use following script:

#!/bin/bash                                                                                                                     launchctl list | grep ftpd  if [ $? != 0 ]; then     IPADDR=$(ifconfig -a | perl -nle'/(\d+\.\d+\.\d+\.\d+)/ && print $1' | grep -v 127.0.0.1)     launchctl load "/System/Library/LaunchDaemons/ftp.plist"     osascript -e "tell application \"Finder\" to display alert \"FTP Launched and ready for file-transfer\" & character id 8233 & character id 8233 & character id 8233 & \"Address: ftp://\" & \"$IPADDR\" & \":21\" & character id 8233 & \"User Name: \" & \"$USER\"" else     launchctl unload -w "/System/Library/LaunchDaemons/ftp.plist"     osascript -e 'tell application "Finder" to display alert "FTP session closed"' fi 

Run this a sudo. Explanation:

  • To check if job is running use launchctl list.
  • To get ip address quickly use my perl script (You may want to grep it differently in order to get rid of additional IP addresses.
  • The only problem now is that Finder app is not brought to front but this can be solved if needed.
 
 
         
         

Perguntas relacionadas

23  Dropbox-Like Client para Macs para acessar o armazenamento existente de FTP / WebDav / CMIS  ( Dropbox like client for macs to access existing ftp webdav cmis storage ) 
Temos muitos usuários no Macs que acessam seus arquivos em um grande servidor não-Mac que suporta FTP / WebDav / cmis. Problema: eles não podem usar seus ar...

105  O que é um bom utilitário gráfico SFTP para OS X?  ( Whats a good graphical sftp utility for os x ) 
Eu preciso de um pequeno utilitário gráfico, usando o que posso ssh para um servidor e ver todos os arquivos e copiar e colar (arrastar e soltar) na minha máq...

1  O Winscp está disponível para Mac ou apenas janelas? [duplicado]  ( Is winscp available for mac or only windows ) 
. Esta pergunta já tem respostas aqui : substituição Cyberduck para transferências SCP ...

36  Ferramenta de linha de comando FTP ausente em macos  ( Missing ftp command line tool on macos ) 
Use ftp para obter o código-fonte. Estou seguindo um livro de linha de comando do Linux para compilar a compilação. [me@linuxbox src]$ ftp ftp.gnu.org ...

1  Como faço para salvar o arquivo ftp.plist ao usar o sudo nano?  ( How do i save ftp plist file when using sudo nano ) 
Eu editei ftp.plist usando sudo nano no terminal, e salvo por controle + O mas depois de reinicializar, ele mudou novamente. Como posso salvar o arquivo? ...

9  Procurando por uma ferramenta para sincronização automática de sftp com pasta local  ( Looking for a tool to automatically two way sync sftp with local folder ) 
Eu uso o OS X para o desenvolvimento e eu quero pressionar alterações no servidor dev em cada ⌘ + s. Quando eu confiro um ramo diferente, quero que a pasta l...

2  A Apple TV Stream Video de um servidor externo usando o protocolo SMB ou FTP com legendas externas?  ( Can apple tv stream video from an external server using smb or ftp protocol with ) 
Eu estou seriamente considerando a mudança do meu jogador baseado em TV Android para o Apple TV Player, porque minha solução atual falha completamente em repr...

14  Como faço para baixar pastas através do FTP no terminal?  ( How do i download folders through ftp in terminal ) 
Como faço para baixar uma pasta inteira através do FTP no terminal? ...

0  Convertendo Ação Automático no AppleScript para Bash Script  ( Converting automator action in applescript to bash script ) 
Acabei de escrever um aplicativo automático usando o AppleScript (junto com algumas linhas de bash) para iniciar o FTP com um único clique. No entanto, corre ...

13  Rápido para instalar e configurar o servidor FTP no Homebrew para OSX  ( Quick to install and set up ftp server on homebrew for osx ) 
Eu preciso do servidor FTP menor e mais fácil apenas para pegar alguns arquivos durante o desenvolvimento. Homebrew tem uma seleção discreta brew search ft...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.