Calendrier
Pour exécuter une commande selon un calendrier, votre meilleur pari est probablement d'utiliser crontab
Cron est un planificateur de travaux basé sur le temps utilisé par les ordinateurs de type Unix.
systèmes. Le nom cron vient du mot "chronos", grec pour
"temps". Cron permet aux utilisateurs de planifier des tâches (commandes ou shell
scripts) à exécuter périodiquement à certaines heures ou à certaines dates.
Ainsi, vous pouvez configurer des scripts et / ou des programmes, etc. pour exécuter un programme avec cela. Pour vos utilisations, le plus applicable minuteur est @reboot
qui fonctionnera à chaque redémarrage. La syntaxe réelle pour cela serait la suivante:
@reboot /path/to/my/script
Étant donné que sur certains systèmes unixy, le contrôle du contrôle de la date est la racine - vous devrez peut-être modifier crontab
depuis un terminal root - faites-le (vous devez avoir les droits admin / sudo):
- Ouvrir un terminal
- type
sudo -i
ou su -
- Type
crontab -e
(cela ouvre crontab dans votre éditeur de texte environnemental
- Mettez ce qui précède sur sa propre ligne (
@reboot /path/to/my/script
)
- Exit and Save (les commandes réelles dépendent de l'éditeur que vous utilisez)
- Assurez-vous que le script est marqué comme exécutable (
chmod +x /path/to/my/script
)
Le script réel
Donc, comme je l’ai dit plus haut - j'aimerais vous voir faire le travail sur les pieds depuis que nous ne sommes pas un service de rédaction de scripts , mais je peux aussi bien vous donner un début.
Vous pouvez utiliser le date
commande avec des paramètres pour obtenir l'heure système actuelle - vous pouvez le faire avec date '+%Y'
Donc, voici une comparaison basée sur l'année:
#!/usr/bin/env bash
sysYr=$(date '+%Y')
cutoff=2008
if [[ $sysYr -lt $cutoff ]]; then
echo "It's before ${cutoff}!"
else
echo "It's ${cutoff} or greater!"
fi
Ventilation de ce qui précède:
- Cela indique simplement au système où chercher le programme qui exécute le script, ce qui est plus portable que
/usr/bin/bash
comme l'habitude d'être commun. Je crois que ça marche aussi sur mac. Si non, tapez which bash
et vous pouvez y pointer directement.
- le
$( something )
est substitution de commande qui remplace la commande par le résultat de la commande. Dans ce cas, nous courons date '+%Y'
qui s'étendra (actuellement) à l'entier 2013
- Définir une autre variable pour le cutoff, juste pour bon code Saké.
- Comparez et faites des commandes conditionnelles. En règle générale, il est préférable de citer les articles comparés pour se protéger contre les espaces et autres; cependant, ce sont des chiffres et il n'y a aucune raison pour qu'ils ne devraient pas être, aussi
-lt
est la comparaison bash pour un chiffre "inférieur à".
- Le reste est assez explicite -
echo
affiche le texte suivant.
crontab
serait probablement le plus facile. Dans un type de terminalcrontab -e
et pour la commande, vous voudrez@reboot /path/to/my/script
. Remarque: Étant donné que sur certains environnements * nix, le temps est un droit imposé - vous devrez peut-être le faire à partir d'un terminal racine.