Aller au contenu

Featured Replies

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)
  • Auteur

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)
  • Auteur

j arrive a naviguer entre mes repertoires mais pourquoi

mv *.cbz *.zip

ne fonctionne pas ?

 

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)
  • Auteur

merci

rename semble ne pas fonctionner sur mon syno

Posté(e)
  • Auteur

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)
  • Auteur

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)
  • Auteur

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)
  • Auteur

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)
  • Auteur

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)
  • Auteur

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

Posté(e)

--verbose à la commande rmdir et pas de redirection dans /dev/null

Posté(e)
  • Auteur

verbose n a pas l air de fonctionner et je seche avec le pipe

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…

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.