Script linux
Résolu
Bonjour a tous et a toutes,
étant un débutant sur linux, j'ai pour mission de creer un script qui me permettra :
- de lister tous les fichiers qui ont plus de 2 semaines
-de les classer par taille decroisante
le tout dans un fichier nommé resultat.txt dans home/syncro
pour info je suis en bts ig en alternance, et cette mission que je trouve déraisonnable compte tenu de mon niveau m'a été attribué par mon tuteur de stage
je compte sur vous pour me donner des tuyeaux
merci d'avance et bonnes fetes :)
étant un débutant sur linux, j'ai pour mission de creer un script qui me permettra :
- de lister tous les fichiers qui ont plus de 2 semaines
-de les classer par taille decroisante
le tout dans un fichier nommé resultat.txt dans home/syncro
pour info je suis en bts ig en alternance, et cette mission que je trouve déraisonnable compte tenu de mon niveau m'a été attribué par mon tuteur de stage
je compte sur vous pour me donner des tuyeaux
merci d'avance et bonnes fetes :)
Configuration: Windows XP Firefox 2.0.0.20
20 réponses
Résumé de la discussion
Un débutant sous Linux cherche à créer un script qui liste les fichiers âgés de plus de deux semaines et les classe par taille décroissante, puis les écrit dans /home/syncro/resultat.txt. Plusieurs réponses proposent d'utiliser find pour sélectionner les fichiers avec -mtime +14 ou +15 et d'alterner avec sort pour trier par taille, avant d'acheminer le résultat vers le fichier visé. Des échanges évoquent des erreurs liées à la syntaxe de sort et à l'utilisation du champ de tri, ainsi que l'importance de rediriger correctement l'affichage vers le fichier cible. En pratique, il est recommandé d'expérimenter sur des répertoires tests et de vérifier le chemin exact du fichier resultat.txt.
-
ModérateurSalut,
Et quelles sont les pistes que tu as commencé à explorer ???
Qu'as-tu essayé de faire pour le moment ?
-
pour l'instant j'ai commencer a creer le script resultat.sh
je sais qu'au debut je dois mettre #!/bin/sh
j'ai oublié de preciser que j'utilise une machine virtuelle sous debian (shell) -
ModérateurEt quoi d'autre à part le shebang ???
-
rien justement je pars avec des base nul c'est ça qui me desole
-
le truc c qu'on a pas commencé linux (janvier) pour l'instant les base que j'ai aquis sont via mon entreprise
c'est pas enorme mais c'est toujours ça
concernant mes recherches je fais que ça puis c'est difficile vu que je dois assurer en meme tps le boulot que ces imbecils d'util me donnent... -
Modérateuret cette mission que je trouve déraisonnable compte tenu de mon niveau m'a été attribué par mon tuteur de stage
[...]
vu que je dois assurer en meme tps le boulot que ces imbecils d'util me donnent...
Si tu pars dans le monde de travail avec ce genre d'à priori et cette mentalité, t'es pas arrivé ;-((
-
Salut,
Commence déjà par faire "man find" tu trouveras ton bonheur avec cette commande pour rechercher tes fichiers. -
merci chakroun mais il me faut que ces fichiers entre dans le fichier txt en question
jipicy quand tu arrive dans une boite ou on tes collegue te parle comme un chien et en te faisant passé pour un pigeon , que les utils que tu voient tous les jours ne savent toujours pas te dire bonjour (j'ai fais des boites, et la politesse est primordial) ... je t'ai planté le décor sachant que je sais au combien j'ai galeré pour trouver une entreprise et que je peux pas la lacher car mon avenir dépend de leur savoir qu'ils doivent me transmettre.
je boulot que je fais j'essaie de le faire avec passion et professionnalisme mais on ne m'aide pas. Et je ne peux pas me plaindre a qui que ce soit.
bref je ne suis pas venu me plaindre mais il faut que j'avance sur ce script absolument -
ModérateurEssaie ça :
find . -type f -mtime +15 -ls | sort -nr +6 | awk '{ print $NF}'
-
Contributeurbonjour,
Merci chakroun mais il me faut que ces fichiers entre dans le fichier txt en question
mais si tu ne commence pas par comprendre et etudie la commande qui va te permettre de creer ton script , ça va jamais le faire
de la lecture
http://www.c-sait.net/cours/scripts.php
a apres ils vont dire que personne ne les aides
a+
ps: concernant les entreprises il y a des c...s partout faut jamais generaliser
-
FC 11 - Mandriva 2009 -Debian squeeze-
Les meilleures choses ont besoin de patience.(JC ANGLADE)
penser aux astuces https://www.commentcamarche.net/list -
je vais essayer ça mais avant je vais essayer de comprendre la ligne de commandes si non comme le dit chakroun ça sert a rien
je vous tient au courant le temps que je comprenne un peu
en tout cas messieurs merci d'avance de vos conseil et de votre aide -
jipicy ta commande m'a l'ai pas mal maid ya un truc que je pige pas notament " sort -nr +6"
tu pourrez m'éclairer
je vient de l'essayer il me met :
echec d'ouverture +6 aucun fichhier
et puis si il me manque la commande qui me permet de lister tous ces fichier dans "resultat.txt" dans le repertoire home/syncro -
#!/bin/bash
var=find . -type f -mtime 15 - print | sort
echo " les fichiers sont $var"-
ModérateurSalut,
Il manque rien à ta déclaration de variable ???
Du style :
var=$(commande...)
Puis le sort se fera sur le nom des fichiers et non sur leur taille ;-((
D'où le "-nr +6" dans la commande donnée plus haut...
-nr pour trier sur les chiffres uniquement (n) et dans l'ordre inverse (r)
+6 sur le 7 ème champ (on part de 0, champ1=0) en fonction du résultat de la commande "find ... -ls" en sortie.
A adapter si besoin...
-
-
jipicy si je met dans mon script qui devrai ressembler a ça :
#!/bin/bash
find . -type f -mtime +15 -ls | sort -nr +6 | awk '{ print $NF}'
le script se lance certe mais le pb c ke je ne trouve pas mon fichier texte où sont listé tous ces fichiers :s -
voila ce que ça donne en sortie standard :
sort : echec d'ouverture : +6: aucun fichier ou repertoire de ce type -
ModérateurAlors affiche ce que renvoie (depuis le répertoire où tu dois lancer ta recherche):
find . -type f -mtime +15 -ls
-
aaaaaahhh la ça a l'air beaucoup mieux
j'ai fait cette ligne de commande
find . -type f -mtime +15 -ls > fichier.txt
ça me la mis comme prévu dans le fichier txt
maintenant le script a un peu de mal a le faire
#!/bin/bash
find . -type f -mtime +15 -ls > fichier.txt
c'est pourtant pas mal ça
a moins que je cherche mal le fichier (find fichier.txt) -
ModérateurLe fichier est sensé se trouver dans le répertoire d'où tu as lancé ton script...
Tu peux afficher quelques lignes de ce que renvoie la commande, histoire qu'on voit pourquoi la commande "sort" te renvoie une erreur, s'il te plaît, merci ?
-
tu parles de la commande find . -type f -mtime +15 -ls > fichier.txt ?
-
mlocate
24644 4 -rw-r--r-- 1root root 102 sep 28 2008./cron.daily/
.placeholder
24644 4 -rwxr--rr-x1root root 314 dec 5 2008./cron.daily/
aptitude
24954 4 -rwxr-xr-x 1root root 89 oct 8 2008./cron.daily/