Aller au contenu

lancer un script sh


xri59

Messages recommandés

bonjour à tous et merci pour votre patience.

Je n ai aucune notion de linux ... ;(

Actuellement sur mon pc, j ai crée un batch que je lance en cliquant dessus. ce batch très simple me sert à renommer mes rar en cbr.

j aimerais faire la même chose sur mon synology et le tout en cliquant sur un fichier similaire (batch) depuis l interface fichiers de ma page de connection internet

je ne sais comment faire

merci pour votre aide

Lien vers le commentaire
Partager sur d’autres sites

Pour lancer un script sur le NAS 2 options:

- par le planificateur de tâche fourni par DSM

- en ligne de commande (connection SSH)

Le script sera relativement simple ensuite à faire, il faudra utiliser la commande linux find pour chercher les fichiers selon vos critères et appliquer à chaque fichier un renommage (avec la commande rename par exemple).

Lien vers le commentaire
Partager sur d’autres sites

Parce que la commande mv ne peut pas comprendre ce que vous voulez faire.

Quand on utilise un caractère spécial comme *, le shell va construire la commande en remplaçant *.cbz et *.zip par tous les fichiers qui correspondent à ce critère:

mv fichier1.cbz fichier2.cbz... fichier1.zip fichier2.zip

Utilisez rename plutôt:

rename .cbz .zip *.cbz

Cela se traduit par renommer la chaîne de caractère .cbz en .zip sur tous les fichiers qui correspondent au pattern *.cbz.

Lien vers le commentaire
Partager sur d’autres sites

petit à petit on devient moins petit lol

serieusement ...

j'ai crée ce script très basique (petit test pour voir si je comprends tout et si cela fonctionne) que je lance avec le planificateur de tache

#!/bin/ash
ls > liste.txt

ce script se situe dans le repertoire /volume1/TophePerso

il ne semble pas fonctionner

 

quand j exécute le script suivant modifié :

#!/bin/ash

cd /volume1/TophePerso
ls > liste.txt

 

cela marche comme je veux à savoir lister le répertoire ou se situe mon script dans le fichier liste.

faut il nécessairement indiquer dans le script l endroit où l on veut qu"il s'exécute ? ne prend il pas par défaut l'endroit où il est ?

 

merci

Lien vers le commentaire
Partager sur d’autres sites

Un script exécuté par cron n'a pas le même contexte d'environnement (et donc répertoire courant) que lors d'une éxécution en shell interactif.

Il faut toujours s'assurer dans un script du répertoire courant, du fichier à écrire... Idéalement avec des chemins absolus (/mon/chemin) plutôt que relatifs (../un/autre/chemin).

Lien vers le commentaire
Partager sur d’autres sites

merci pour cette information

j ai egalement decouvert qu un fichier crée dans le bloc note windows ne respectait pas un certain agencement ce qui occasionne des erreurs alors qu avec l editeur texte du syno ... aucun probleme

 

dernière question

peut on en natif avec un script linux decompacter des rar et des zip ?

Lien vers le commentaire
Partager sur d’autres sites

ok merci à tous les deux

 

je souhaite dezipper un fichier zip dans un repertoire précis mais sans concerser la structure arborescence du zip

7z le fait avec 7z e mais il est tres lent à s executer sur le syno

unzip va par contre tres vite mais je ne trouve pas l option qui permet de faire cela

avez vous une idée ?

merci

Lien vers le commentaire
Partager sur d’autres sites

Le meilleur tuyau? Utiliser -h (voir -hh pour unzip) ou --help en paramètre d'une commande linux pour avoir les options disponibles.

-d j'imagine pour le répertoire d'extraction

-j (s'il est supporté par le binaire fourni par Synology)
 

Citation

 

-d  extract files into exdir

-j   Junk paths and deposit all files in extraction directory.

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

merci

 

autre chose et peut etre pas la dernière ;(

j avance plutot bien d ailleurs ;)

j utilise find qui marche très bien jusque ici pour ce que je veux faire

sauf qu a priori il ne reconnait pas la commande -empy

mon find \ -type d -empty > aqa.txt \;  ne fonctionne pas. j ai bien un aqa.txt mais vide

alors que la ou j utilise ma commande il y a des repertoires vides ;(

Lien vers le commentaire
Partager sur d’autres sites

Si --help n'était pas supporté la commande find le dirait.

Faire la même commande mais sans la redirection et avec option -ls pour vérifier.

Citation

find /mon_repertoire -type d -empty -ls

Selon, pour être certain, faire un répertoire vide de test dans le répertoire courant et retester:
 

Citation

 

mkdir test_dir_vide

find . -type d -empty -ls

 

 

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.