Actuellement étudiant en DUT Info j'ai un exercice sur Linux a réaliser qui me pose problème.
La première partie de cet exercice traitait de la fonction at, avec laquelle je n'ai pas eu de problème majeur.
La seconde partie est plus compliqué, nous devons automatiser les tâches:
On doit créer une crontab qui tous les jours récupère la date et l'espace disque.
On doit créer sur le bureau cinq fichiers lundi.txt, mardi.txt jusquà vendredi.txt.
Chaque jour on récupère la date et l'espace disque et elle doit enregistrer les données sur le jour correspondant.
On oublie Samedi et Dimanche, ces jours ont tous simplement été supprimé pour simplifier l'exercice (ou pas!).
Donc le lundi il crée le fichier, et il reste lisible toute la semaine jusqu'au lundi suivant, jour ou les données sont écrasés.
Pour voir le fonctionnement on estime que une journée = 1 minute.
Je sais pas si j'ai été clair, mais pour moi ça l'est en tout cas.
Je suis un peu perdu au moment d'écrire la crontab nottament parce que une minute = une journée sinon j'aurai tous simplement utilisé le champ "jour de la semaine"
avec une commande du genre:
00 08 * * 2 df > ~/Bureau/lundi.txt
00 08 * * 3 df > ~/Bureau/mardi.txt
Mais le fait qu''on travaille avec des minutes seulement me gêne dans la réflexion.
Car dans ce cas lundi par exemple seront les minutes multiples de 5:
*/5 * * * * df >~/Bureau/lundi.txt
Et mardi? bah ça sera toute les minutes tel que S=5x+1 (donc 6,11,16...) mais comment le noter, car */5+1 j'ai pas l'impression qu'il comprenne.
De même comment je peux récupérer la date (en effacant la dernière sauvegarde sans effacer les paramètres, j'avai pensé à ça:)
crontab -e
*/5 * * * * date>~/Bureau/lundi.txt
*/5 * * * * df >>~/Bureau/lundi.txt
1,6,11,15... * * * * date>~/Bureau/mardi.txt
1,6,11,15... * * * * date>~/Bureau/mardi.txt
Est ce que quelqu'un peut m'éclairer?
Merci d'avance pour votre aide/ vos conseils.
- Edité par AdrienLebronGracia 21 octobre 2016 à 9:16:34
On doit créer sur le bureau cinq fichiers lundi.txt, mardi.txt jusquà vendredi.txt. Chaque jour on récupère la date et l'espace disque et elle doit enregistrer les données sur le jour correspondant.
ça, ça se scripte facilement. cf. man date pour lui faire afficher le jour, et qui servira à définir dans quel fichier écrire.
ensuite, tu configures la crontab pour appeler le script à heure fixe, du lundi au vendredi (comme pour énerver Joe, cf. man 5 crontab)
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
voici un petit programme bash que j ai realisé pour pouvoir t'aider , tu devras faire le changement comme le home/NomCompte
tu n 'auras besoin d'ecrire une seul fois dans crontab , pas besoins de répéter
car le test du jour est present dans le programme avec
date +%u
essaye de mettre
0-59/5 * * * * etatDesDisques.sh
au lieu de * /5 * * * *
#! /bin/bash
## nom du fichier etatDesDisques.sh
## ne pas oublier de faire chmod +x etatDesDisques.sh
## pour qu il soit executable
## ensuite tu le met dans ton crontab
MKDR="/bin/mkdir"
jour=`/bin/date +%u`
## test valeur de jour a commenter si tu prefere
echo $jour
## retourne 1 pr lundi 2 pr mardi
## 3 pr mercredi etc ..
DATE=`date`
ESPACE=`df -h`
homeAMoi='/home/monCompteAMoi' # a modifier monCompteAMoi
destination="$homeAMoi/Bureau"
## declaration de tous les fichiers
jourFichierDest1="$destination/lundi.txt"
jourFichierDest2="$destination/mardi.txt"
jourFichierDest3="$destination/mercredi.txt"
jourFichierDest4="$destination/jeudi.txt"
jourFichierDest5="$destination/vendredi.txt"
# test si le repertoire est existant
if [ -d "$destination" ]; then
# verifie si le repertoire existe .
echo $destination existe deja ;
else
echo $destination n existe pas ;
##--parent pour la recursivite
## creation du repertoire
$MKDR --parents $destination;
echo $destination a ete creer ;
fi
case $jour in
1)
echo -e "$DATE\n$ESPACE" >$jourFichierDest1
;;
2)
echo -e "$DATE\n$ESPACE" >$jourFichierDest2
;;
3)
echo -e "$DATE\n$ESPACE" >$jourFichierDest3
;;
4)
echo -e "$DATE\n$ESPACE" >$jourFichierDest4
;;
5)
echo -e "$DATE\n$ESPACE" >$jourFichierDest5
;;
*)
echo jour de la semaine non pris en charge
exit 1
esac
- Edité par gmormorromrom 21 octobre 2016 à 12:42:57
Les petites choses ont leur importance ; c'est toujours par elles qu'on se perd. Auteur: Fedor Dostoïevski
Je vais réétudier d'où viens l'erreur que j ai commise , en ce moment je prends un congés mes vacances viennent de commencer . Merci @daltonbien, tu es vraiment pro dans tes réponses.
enfin, j'ai trouvé le pépin c'est tout simplement que j aurai du écrire un fichier Bash et l’exécuter sous Crontab .
Encore merci DaltonBien ça marche à merveille
- Edité par gmormorromrom 1 janvier 2017 à 21:04:31
Les petites choses ont leur importance ; c'est toujours par elles qu'on se perd. Auteur: Fedor Dostoïevski
Comment faire pour exécuter deux commandes (c'est à dire je veux que il m'affiche la date, puis l'espace disque, mais la syntaxe doit être fausse car il fait rien du coup tandis que si je met juste date il comprend.
Je veux récuperer la date et l'espace disque (par df) et l'envoyer sur le fichier lundi.txt
Merci de m'éclairer sur ce point j'ai presque fini
ça configure la variable d'environnement LC_TIME à fr_FR, uniquement pour cette commande date.
- Edité par dantonq 1 janvier 2017 à 21:09:15
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Besoin d'aide pour un exercice pratique [crontab]
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
ça configure la variable d'environnement
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique