La batterie de mon ordinateur est mauvaise, mais je ne veux pas vraiment dépenser de l'argent pour la remplacer car elle dure encore plusieurs heures. Mais quand il tombe à environ 10%, il arrive parfois que l'ordinateur s'éteigne complètement sans prévenir. Lorsque cela se produit, l'horloge interne est réinitialisée au 31 décembre 2000. Je ne pense pas que l'horloge soit maintenue par une pile de montre comme celle d'un PC, sinon je changerais simplement cela.
Quoi qu'il en soit, une fois le système d'exploitation chargé, je reçois un avertissement indiquant que la date est définie sur avant 2008 et que certaines applications peuvent ne pas fonctionner correctement, mon réseau Wi-Fi en étant un. Je dois ensuite effectuer quelques étapes pour changer l'heure, la sauvegarder, vous déconnecter et vous reconnecter. C'est juste une douleur mineure dans les fesses, mais j'aimerais avoir un script similaire au fichier autoexec.bat d'un PC faire le travail pour moi.
Pendant le démarrage, j'aimerais qu'un script vérifie l'heure. Si c'est avant 2008, définissez une date au-delà de 2008. Si la date est postérieure au 1er janvier 2008, mon WiFi fonctionnera et le système corrigera automatiquement l'heure dans quelques instants.
J'utilise OSX 10.6.8 sur un Mac à processeur Intel.
Merci d'avance pour votre aide, Pete
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.Réponses:
Calendrier
Pour exécuter une commande selon un calendrier, votre meilleur pari est probablement d'utiliser
crontab
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:É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):sudo -i
ousu -
crontab -e
(cela ouvre crontab dans votre éditeur de texte environnemental@reboot /path/to/my/script
)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 avecdate '+%Y'
Donc, voici une comparaison basée sur l'année:
Ventilation de ce qui précède:
/usr/bin/bash
comme l'habitude d'être commun. Je crois que ça marche aussi sur mac. Si non, tapezwhich bash
et vous pouvez y pointer directement.$( something )
est substitution de commande qui remplace la commande par le résultat de la commande. Dans ce cas, nous couronsdate '+%Y'
qui s'étendra (actuellement) à l'entier 2013-lt
est la comparaison bash pour un chiffre "inférieur à".echo
affiche le texte suivant.la source