Une copie qui se fait toute seule
cron est le programme de Linux qui lance une commande à heure fixe, sans que personne appuie sur rien. Il sert surtout aux sauvegardes : une copie de tes données, rangée ailleurs pour le jour où l'original disparaît.
Aujourd'hui, tu fabriques une sauvegarde, tu la programmes, puis tu vérifies qu'elle se restaure.
À la fin de cette leçon
Remarque
Je peux programmer une sauvegarde automatique avec cron.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Sauvegarde | une copie de données rangée ailleurs | |
| Archive | un seul fichier qui en contient plusieurs | copie.tar.gz |
| tar | la commande qui fabrique et lit une archive | |
| cron | le programme qui lance des commandes à heure fixe | |
| crontab | la liste des tâches planifiées d'un utilisateur |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Avant de commencer
Remarque
Appuie sur Start the lab dans la barre en haut et attends que la machine soit prête. Ce lab est un serveur à administrer. Aujourd'hui, tu n'utilises que ta propre liste de tâches et tes propres dossiers.
Une archive range un dossier dans un fichier
Pour sauvegarder un dossier, on le range souvent dans une archive : un seul fichier qui en contient plusieurs. La commande tar la fabrique.
tar -czf copie.tar.gz -C ~ donnees met le dossier donnees dans copie.tar.gz. Dans -czf, c crée, z compresse et f donne le nom du fichier. -C ~ dit de partir de ton dossier personnel.
Crée un dossier à sauvegarder
mkdir -p ~/donneesAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Mets-y un fichier
echo "mes notes" > ~/donnees/notes.txtAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Fabrique la sauvegarde
tar -czf ~/copie.tar.gz -C ~ donneesAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Lis le contenu de l'archive
tar -tzf ~/copie.tar.gzAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Une ligne cron : cinq champs, puis la commande
Une tâche cron tient sur une ligne : cinq champs pour dire quand, puis la commande. Les champs sont la minute, l'heure, le jour du mois, le mois et le jour de la semaine.
Une étoile * veut dire « tous ». Et */15 veut dire « toutes les 15 unités ». Attention : dans une ligne cron, un signe % s'écrit \%.
Des exemples de lignes cron
| Les cinq champs | Quand la commande tourne |
|---|---|
| 30 2 * * * | chaque jour à 02:30 |
| 0 * * * * | au début de chaque heure |
| */15 * * * * | toutes les 15 minutes |
| 0 8 * * 1 | chaque lundi à 08:00 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Lis ta liste de tâches
crontab -lAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Programme la sauvegarde chaque nuit
echo '30 2 * * * tar -czf $HOME/copie.tar.gz -C $HOME donnees' | crontab -Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Relis ta liste de tâches
crontab -lAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Une sauvegarde non testée ne vaut rien
Une sauvegarde sert à restaurer. Si elle est vide ou abîmée, tu le découvres le jour où tu en as besoin. Il faut la tester : la restaurer dans un autre dossier, puis relire un fichier.
La règle 3-2-1 aide : trois copies, sur deux supports différents, dont une loin de la machine.
Crée un dossier de restauration
mkdir -p ~/restaurationAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Restaure la sauvegarde dedans
tar -xzf ~/copie.tar.gz -C ~/restaurationAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Relis le fichier restauré
cat ~/restauration/donnees/notes.txtAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Retire ta tâche à la fin
crontab -rAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Une erreur fréquente
Attention
Beaucoup pensent que cron prévient quand une tâche échoue. Non : il lance la commande en silence, avec un environnement minimal. Teste d'abord la commande à la main, avec des chemins complets, puis relis le résultat le lendemain.