Windows ha diverse alternative per automatizzare le attività. Lo strumento più comune è l'Utilità di pianificazione di Windows, ma se stai usando il sottosistema Windows per Linux (WSL), c'è anche il demone cron che esegue attività in background per la tua installazione WSL.
Cron non viene eseguito per impostazione predefinita
In Windows 10 e Windows 11, cron viene fornito in bundle con ambienti Linux come Ubuntu. Il problema è che WSL non si avvia automaticamente cron, il che significa che le tue attività automatizzate non vengono eseguite per impostazione predefinita.
Per risolvere questo problema, puoi avviare cron manualmente ogni volta che apri la riga di comando, ma avviare manualmente uno strumento che dovrebbe automatizzare le attività è come perdere conoscenza.
fortunatamente, c'è un modo semplice per risolvere questo problema ed è necessario utilizzare l'Utilità di pianificazione.
Se non hai mai usato cron su Linux per eseguire attività, dai un'occhiata al nostro precedente tutorial sulla pianificazione delle attività in Linux. Per i nostri scopi qui, supponiamo che tu abbia già creato alcuni lavori cron nella tua installazione WSL e hai bisogno di aiuto per assicurarti che vengano eseguiti invece di occuparti sempre di cron.
Per questo tutorial, noi useremo sudo service
per controllare e avviare cron, che è il modo consigliato per interrompere e avviare i servizi nelle versioni moderne di Ubuntu, la distribuzione più popolare per WSL.
Allo stesso tempo, Nota che questo tutorial presuppone che tu abbia i diritti di amministratore sulla tua versione di WSL. Se sei l'unico utente sul tuo PC e hai abilitato WSL da solo, allora hai i diritti di amministratore.
Consiglio: Funziona anche sul sottosistema Windows per Linux su Windows 11, non solo su Windows 10.
IMPARENTATO: Come pianificare le attività in Linux: Introduzione ai file Crontab
Prepara Linux
La prima cosa che faremo è consentire al computer di avviare cron senza password. Quando avvii un servizio come cron, usa il comando sudo service cron start
. Ma quel comando ha bisogno di una password, a cui Windows non avrà accesso all'avvio. Il modo per aggirare questo è disabilitare il requisito di una password per questo comando.
Fare quello, apri la finestra del terminale WSL e digita sudo visudo
. Premi Invio sulla tastiera, inserisci la tua password Linux e premi nuovamente il tasto Invio. Se stai usando Ubuntu, questo apre il file “sudoers” Utilizzando l'editor di testo da riga di comando Nano, adatto ai principianti. Sudoers è un file per gli amministratori di sistema che può modificare i privilegi e i diritti di accesso degli utenti.
Aggiungi il seguente comando alla fine del file sudoers e poi premi Ctrl + o per salvare e Ctrl + x per uscire dal file.
%sudo ALL=NOPASSWD: /usr/sbin/service cron start
Questo comando sudoers dice che qualsiasi utente che ha privilegi sufficienti per usare il comando sudo (che dovrebbe incorporarti) non hai bisogno di una password per eseguire il comando sudo service cron start
, che avvia il demone cron.
Una volta salvato il file, puoi verificare che il comando stia facendo il suo lavoro digitando sudo service cron start
, e dovrebbe iniziare cron senza chiedere una password. Se ha funzionato, disattiviamo nuovamente cron in modo da poter verificare che l'attività che stiamo creando nel passaggio successivo funzioni correttamente. Fare quello, per favore corri sudo service cron stop
.
Configura Cron nell'Utilità di pianificazione di Windows
Questa è la prima fase del nostro viaggio verso l'automazione cron.. Passiamo alla parte 2 con l'Utilità di pianificazione. Tocca il tasto Windows sulla tastiera, quindi cerca “Agenda”. Avvia il collegamento “Agenda”.
Quando inizia, guarda nella sezione “Azioni” e seleziona “Crea attività di base”.
Si apre la procedura guidata delle attività di base. Primo, ti chiederà di nominare l'attività e dargli una descrizione. Puoi inserire quello che vuoi qui. Chiamiamo il compito “cron” e la descrizione è “Un'attività per avviare cron all'avvio del sistema”. Ora, premere “Prossimo”.
Nella prossima sezione, arriviamo andiamo ad esso. Primo, Windows vuole sapere quando vogliamo eseguire l'attività. Scegli il pulsante di opzione “All'avvio del computer” e clicca “Prossimo”.
Nella prossima sezione, vogliamo “Avviare un programma”. Quell'opzione è selezionata per impostazione predefinita, quindi clicca “Prossimo”.
Ora, dobbiamo specificare il programma che vogliamo eseguire, cos'è il WSL. Immettere quanto segue nella casella di immissione testo “Programma / Copione”: C:WindowsSystem32wsl.exe
Dobbiamo anche aggiungere alcuni argomenti, poiché tutto ciò che abbiamo fatto finora è stato avviare WSL, ma all'interno di WSL, dobbiamo dire a Ubuntu di avviare cron. Quindi, nella cornice “Aggiungi argomenti”, Inserisci: sudo /usr/sbin/service cron start
premere “Prossimo” un'altra volta, seleziona la casella che dice “Apre la finestra di dialogo delle proprietà quando faccio clic su Fine” e quindi fare clic su “finalizzare”.
Il compito è creato, ma dobbiamo fare un'ultima cosa per assicurarci che tutto funzioni. verrà aperta una nuova finestra, che mostra il riepilogo dell'attività che hai creato, ma è configurato per essere eseguito solo quando si effettua l'accesso. Dobbiamo scegliere il pulsante di opzione che dice “Esegui indipendentemente dal fatto che l'utente abbia effettuato l'accesso o meno” e premere “Accettare”.
Ora, Mettiamo alla prova il nostro compito in due modi. Primo, nella finestra principale dell'Utilità di pianificazione, scorri verso il basso finché non vedi il nome della tua attività. Se hai usato il nome “cron”, dovrebbe essere in cima alla lista. Fare clic con il pulsante destro del mouse sull'attività e selezionare “Correre”.
Successivamente, torna al tuo terminale WSL e digita sudo service cron status
, e dovrebbe dire che cron è in esecuzione. Se non è così, controlla di aver inserito tutto correttamente nei passaggi precedenti.
Se tutto ha funzionato correttamente al primo controllo, è l'ora della grande prova. Riavvia il PC e, quando torno, apri un terminale WSL ed esegui sudo service cron status
, che dovrebbe segnalare che cron è ora in esecuzione.
Congratulazioni! Hai fatto il tuo primo passo verso un mondo automatizzato più grande. Con cron in esecuzione in background, i cronjob che hai impostato in WSL verranno eseguiti automaticamente come pianificato.