Come posso creare un'API indipendente per eseguire un comando di terminale

1

Ho l'obbligo di eseguire manualmente gli script di manutenzione OSX in OSX (Lion / Mountain Lion). Vorrei creare un'applicazione completamente autonoma che realizzasse i seguenti obiettivi:

  • esegui il comando del terminale: sudo periodic daily weekly monthly
  • Essere eseguibile tramite il Finder
  • Essere autonomi (un singolo file è tutto ciò che è necessario per eseguire il processo in modo che un utente non incline alla tecnologia possa fare doppio clic per eseguire tale comando)
  • Sii portatile (copia un singolo file su un'unità flash USB o altri supporti portatili)
  • Essere in grado di essere eseguito su Mac con OSX Lion o Mountain Lion in esecuzione

Non ho necessariamente bisogno di vedere i risultati al termine dell'esecuzione, dato che posso sempre andare in / var / log directory per scoprirlo, ma se qualcuno sa come eliminare questo passaggio extra, tanto meglio.

Ho trovato questo risposta ma non soddisfa tutti i requisiti. Non sono un programmatore / programmatore ma posso (e sono disposto a farlo) seguire istruzioni semplici per raggiungere i miei obiettivi.

    
posta Mort 05.03.2013 - 18:35
fonte

5 risposte

5

Crea un'applicazione di Automator che richiami un AppleScript. Dovrai inserire le credenziali amministrative ogni volta, poiché sono sicuro che la password potrebbe essere diversa su ogni sistema che utilizzi.

    
risposta data 07.03.2013 - 04:03
fonte
5

La risposta di bispymusic dovrebbe funzionare bene, ma una risposta ancora più semplice (meno livelli di programma da avviare) è quella di aprire AppleScript Editor e creare un Nuovo script. Lo script è lo stesso di sopra:

 do shell script "periodic daily weekly monthly" with administrator privileges

Salva lo script come applicazione . Fatto. Automator è fantastico, ma in questo caso chiama semplicemente un AppleScript, quindi possiamo ritirare il middleman di automator e creare direttamente un AppleScript.

Questo dovrebbe soddisfare tutti e cinque i requisiti, con l'avvertenza tecnica che sia lo script di automazione che l'applicazione AppleScript sono tecnicamente cartelle e non file singoli. Per l'utente non tecnico, tuttavia, si comportano come singoli file e possono essere cliccati due volte per essere eseguiti, trascinati e rilasciati, ecc.

    
risposta data 08.03.2013 - 03:49
fonte
1

Ecco un modo per eseguire uno script con privilegi di amministratore e non è necessario inserire la password ogni volta (non ricordo dove ho trovato):

property userpassword : "" -- <<< !!! DO NOT FILL !!! Script will ask if needed.

-- Will ask for password on first run
getPassword()

-- Now userpassword contains the password filled the first time
-- You can for example do :
-- do shell script "sudo ipfw list" password userpassword with administrator privileges

--
-- Your script here
--

on getPassword()
    if userpassword is "" then
        display dialog "Please enter your password:" default answer "" with hidden answer
        set userpassword to text returned of result
        -- The repeat section below is an optional error checking routine to ensure the password is valid
        set the_password to "Undefined"
        repeat until the_password is "Correct"
            try
                set theFinderPID to do shell script "ps -axww | /usr/bin/grep '[/]Finder'| awk '{print $1}' | head -1"
                do shell script "renice 1 " & theFinderPID password userpassword with administrator privileges
                do shell script "renice 0 " & theFinderPID password userpassword with administrator privileges
                set the_password to "Correct"
            on error
                display dialog "Wrong password :" default answer "" with hidden answer
                set userpassword to text returned of result
            end try
        end repeat
    end if
end getPassword
    
risposta data 08.03.2013 - 20:11
fonte
1

Sembra che quello di cui hai bisogno sia Platypus , che ti consente di creare wrapper di applicazioni attorno agli script.

    
risposta data 30.11.2015 - 21:54
fonte
0

Non so se ti serve più questa roba o no. Potrebbe causare più problemi rispetto alle cure delle app. Guarda questa pagina per i suggerimenti. La pagina potrebbe non essere aggiornata. link

"Maintenance è un'utilità di manutenzione e pulizia del sistema che consente di eseguire varie attività di manutenzione del sistema: riparare le autorizzazioni, eseguire script periodici, ripristinare l'indice di Spotlight, ricostruire il database LaunchServices, eliminare la cache dell'applicazione, dei caratteri e del sistema e controllare lo stato del disco rigido. "

link

    
risposta data 07.03.2013 - 00:54
fonte

Leggi altre domande sui tag