Aller au contenu

Messages recommandés

Posté(e)

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

Posté(e)

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).

Posté(e)

merci beaucoup pour votre réponse

en ligne de commande cela fonctionne t il en réseau local et internet ?

 

pour le script toutes les commandes linux fonctionnent elles ?

Posté(e)

En réseau local : oui

Via internet : oui à condition d'ouvrir le port SSH et faire une redirection de port (avec précaution et en limitant au maximum l'accès, idéalement à une seule ip extérieure)

DSM est packagé avec les commandes linux de base.

Posté(e)

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.

Posté(e)

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

Posté(e) (modifié)

autre chose

 

sous putty je tape

fichier= `ls *.cbz`

echo $fichier > test.txt

ca fonctionne

la même chose en script plus planificateur et àa marche pô ... c etait une histoire de droit

Modifié par xri59
Posté(e)

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).

Posté(e)

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 ?

Posté(e)

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

Posté(e)

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.

 

 

 

Posté(e)

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 ;(

Posté(e)

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

 

 

Posté(e)

j ai trouvé ceci qui fonctionne

find -depth -type d -exec rmdir + 2>/dev/null {} \;

mais j aimerais afficher les repertoires effacés dans un fichier texte ... je sèche

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.