Tache cron sauvegarde

Bonjour à tous,

Je souhaiterais ajouter une tâche cron pour récupérer une sauvegarde de mon site une fois par mois
voici ce que j’ai mis mais ne s’exécute pas
L’idée c’est de pouvoir l’exécuter tous le 28 du mois à 2h15 du matin uniquement

15 2 28 * * tar -cvpzf /home/site/backup_database/backup_site_$(date +%d-%m-%Y).tar.gz /var/www/html

Vous avez une idée pourquoi cela ne s’exécute pas s’il vous plaît?

Bonjour,
La tâche suivante fonctionne-t-elle bien ?

tar -cvpzf /home/site/backup_database/backup_site_$(date +%d-%m-%Y).tar.gz /var/www/html

Que dit ceci:

systemctl status cron
crontab -l

La tâche cron est-elle lancée en mode user ou root ?

La tâche fonctionne bien quand je le lance manuellement :
tar -cvpzf /home/site/backup_database/backup_site_$(date +%d-%m-%Y).tar.gz /var/www/html

systemctl status cron
c’est bien active :
Active: active (running) since Sun 2022-11-13 11:54:06 EAT; 4 months 8 day>

crontab -l
cela n’affiche pas la tâche cron , il faut que je change utilisateur site1 pour le voir, j’utilise donc cette commande :
crontab -u user1 -l

Et c’est avec cette commande que je vois toutes les tâches

La tâche cron est-elle lancée en mode user ou root ?
→ Pour cette question, je ne sais pas exactement… ici c’est en mode user je pense

A dispo,

dans ta ligne cron, il faut que tu précise le user

site1, user1: Ça parait un peu confus non ?

Pardon Verner,

L’utilisateur c’est user1.
Mais sur la commande :

15 2 28 * * tar -cvpzf /home/site/backup_database/backup_site_$(date +%d-%m-%Y).tar.gz /var/www/html,

Vous pensez que j’ai commis une erreur ?
15 2 28 * * → exécution tous le 28 du mois à 2h15 du matin

Pour préciser l’utilisateur dans la ligne de commande,
je devrais mettre comme ceci ?

15 2 28 * * root tar -cvpzf /home/site/backup_database/backup_site_$(date +%d-%m-%Y).tar.gz /var/www/html

« 15 2 28 * * » est correct, mais il faut attendre le 28 du mois pour tester…

non, non.
La session active en cours est-elle bien user1 ?
echo $USER

Avec echo $USER
ça retourne : root
Je n’ai pas besoin de préciser dans la commande donc?

je vais essayer de changer la date pour tester

Crontab n’utilise pas le user de la session active si je ne me trompe

Par défaut, tous les utilisateurs peuvent planifier l’exécution de tâches.
C’est pourquoi chacun dispose de sa propre crontab , où il peut consigner les commandes à planifier.
Il peut la modifier en exécutant crontab -e (ses informations sont stockées dans le fichier /var/spool/cron/crontabs/utilisateur ).

»» Planification de tâches : cron et atd

je ne parle pas de modifier le crontab, mais quand il s’execute.
Quand tu n’es pas connecté, ton environnement n’est pas présent donc il est possible que les tâches programmées ne fonctionne pas.

De fait cette commande devrait peut-etre commencer par /usr/bin/tar -cvpzf

1 J'aime

Ah d’accord,
Je vais voir ça et je vous tiens au courant pour la solution trouvée si c’est ok de mon côté

toujours mettre le chemin au cas où

sinon tu peux avoir un probleme avec le dossier /var/www/html : essaies avec un sous -répertoire en chmod 777 pour voir

Bonjour à tous,

Voici donc le code qui marche :

*/50 * * * * /usr/bin/tar -czf /home/site/backup_database/backup_site_`date +"\%Y\%b\%d_\%H\%M\%S"`.tar.gz -P /var/www/html/

Après je change juste la date d’exécution (
*/50 * * * * ) pour le jour et l’heure de la sauvegarde.

Merci à tous pour votre aide :slight_smile:

Alors, quand j’ai lu ton sujet la première fois, je me disais que ta planification pouvait poser problème, j’ai réfléchi au mois de février, mais je n’ai pas trouvé.
Là, j’ai trouvé ce qui ne va pas, ce n’est pas spécialement critique, mais je te le partage au cas où ça t’arrive.
Si ton serveur est réglé dans un fuseau horaire européen et que le 28 tombe un dimanche en mars ou octobre, ta tâche de sauvegarde se fera, respectivement, pas du tout ou deux fois.
Bon, je te l’accorde, ça ne tombe pas souvent, mais le prochain dimanche 28 mars est en 2027 (pas de sauvegarde) et le prochain dimanche 28 octobre est en 2029 (deux sauvegardes), mais tu auras largement le temps d’oublier et de ne pas comprendre pourquoi ta planification n’a pas fonctionné comme prévu…

Bonjour Almtesh,

Merci pour ton explication,
Le fait d’avoir deux sauvegardes n’est pas vraiment un souci, je peux supprimer l’une des sauvegardes après, mais je me demande si cela n’affecte pas mon site : problème de lenteur ou autre chose?

Pour la date, j’ai pensé à mettre deux jours différents sur la commande, disons que la tâche s’effectue le 17 et le 28 du mois, comme ça, si le 28 ne marche pas au mois j’aurais la sauvegarde du 17 et vice versa.
La commande devient comme ceci donc :
15 2 17,28 * * tar -cvpzf /home/site/backup_database/backup_site_$(date +%d-%m-%Y).tar.gz /var/www/html

Mais si jamais les deux feront deux sauvegardes cela n’est pas vraiment très bon pour moi, les fichiers risquent d’être très volumineux.

Et mon côté, il faut que je supprime manuellement les sauvegardes précédentes pour ne pas saturer le serveur, du coup, je devrais surveiller le répertoire de sauvegarde de temps en temps.

Ça doit être un site très volumineux ou un serveur un peu trop sous-dimensionné.

Peut-être envisager un programme qui gère les sauvegardes. Pour ma part, j’utilise rdiff-backup, mais il y en a d’autres qui sont probablement meilleurs.

D’accord,
Merci pour ton retour Almtesh.
Je vais voir un peu de mon côté et je reviens quand tout est ok ou si je n’y arrive pas :upside_down_face: