Quel est un moyen simple d'exécuter une commande, disons dans 8 heures? Je peux penser de cette façon:
Nohup bash -c "sleep 28800 ; ./mycommand.sh" &
Y a-t-il une manière plus "correcte"?
Vous pouvez utiliser la commande at
name__. at
exécute les commandes ultérieurement. L'utilitaire at
doit lire les commandes à partir de l'entrée standard et les regrouper en tant que tâche à exécuter en vue d'une exécution ultérieure.
D'habitude, at
est installé par défaut sous Ubuntu, mais si votre version ne l'inclut pas, installez-la via:
Sudo apt-get install at
Pour plus d'informations, options, exemples et autres, voir le Référentiel de pages de manuel Ubunt
Exemple:
at now +8 hours -f ~/myscript.sh
Vous pouvez également utiliser des raccourcis pratiques, tels que tomorrow
ou noon
name__, comme dans
echo "Tweet fore" | at teatime
Avertissement: Ceci lancera la commande à gauche du tuyau immédiatement mais ne présente sa sortie que plus tard. L'exemple montre également comment vous pouvez diriger les actions vers at
name__. at -c
est le moyen par lequel vous pouvez examiner les actions planifiées, que vous pouvez facilement lister avec leur numéro, comme avec:
at -c 3
Oui, vous pouvez définir un travail cron.
Par exemple, si l'heure est 14h39:00 et celle d'aujourd'hui vendredi 30 août, vous pouvez ajouter le travail cron suivant (à exécuter après 8 heures) dans votre fichier crontab à l'aide de la commande crontab -e
:
39 22 30 8 5 /path/to/mycommand.sh
Plus à propos:
Utilisez l'interface graphique basée sur Gnome pour cron
, at
, etc.:
L'introduction de CronHowto suggère d'utiliser le gnome-schedule
gui, ce qui est bien plus agréable que de taper toutes les ordures dans le terminal (en particulier pour les utilisateurs "moyens" d'Ubuntu qui ne sont pas des utilisateurs "puissants" * nix/bsd .)
Exécutez-le à l'aide du tableau de bord Unity (ou du menu des autres applications) pour rechercher des tâches planifiées ou exécuter gnome-schedule
.
Sur les systèmes Ubuntu basés sur Gnome, l'outil Tâches planifiées Gnome (du paquet gnome-schedule) dans Applications -> Outils système fournit une interface graphique avec une invite à utiliser Cron. Le site Web du projet se trouve à http://gnome-schedule.sourceforge.net/ ; le logiciel est installable à partir du centre logiciel ou en tapant
Sudo apt-get install gnome-schedule
dans un terminal.
En utilisant gnome-schedule
, pour un script de votre répertoire personnel, une nouvelle commande "at" serait configurée à l'aide de ce type de fenêtre:
J'ai trouvé un moyen rapide et sale de faire cela avant de découvrir que at
était une chose.
Supposons que votre script soit exécuté à midi:
until [[ "$(date)" =~ "12:00:" ]]; do
sleep 10
done
./mycommand.sh
Supposons que vous souhaitiez le lancer demain à midi (aujourd'hui, le 24 novembre pour moi):
until [[ "$(date)" =~ "25 12:00:" ]]; do
sleep 30
done
./mycommand.sh