#1 Le 15/03/2017, à 15:36
- temps
[résolu] copier le contenue d'un repertoire partagé
Bonjour,
Je voudrais écrire un script qui copie automatiquement le contenue d'un répertoire partagé.
j'ai commencé à écrire :
#!/bin/bash
rm -R /home/PC_modif/Desktop/Working_directory/*.*
cd /home/PC_modif/Desktop/Working_directory
smbclient \\\\mon_server\\Working_directory -U utilisateur_monserver -N
var1 =$(ls)
get var1
exit 0
Je suis en ssh, quand je lance mon script (qui est placé dans /usr/bin/) j'entre bien dans le partage, si je liste (ls) et écris get (nom des fichiers listés) ça fonctionne, mais le script ne fonctionne pas et reste bloqué sans rien télécharger. avant d'écrire une boucle sur la réponse de ls, je cherche ou est l'erreur.
est-ce que quelqu'un voit ou je me trompe ?
Cordialement
Dernière modification par temps (Le 16/03/2017, à 09:57)
Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net
Hors ligne
#2 Le 15/03/2017, à 16:49
- Hizoka
Re : [résolu] copier le contenue d'un repertoire partagé
Salut
var1 =$(ls)
=>
var1=$(ls)
?
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#3 Le 15/03/2017, à 17:20
- Watael
Re : [résolu] copier le contenue d'un repertoire partagé
salut,
dans ton script, quand tu ouvres une connexion vers ton serveur, les commandes qui suivent smbclient ne seront pas exécutées tant que la connexion sera active (cela doit d'ailleurs provoquer l'affichage d'erreurs, parce que get n'est pas une commande shell).
pour exécuter les commandes sur le serveur, utilise un document en ligne (here-string) :
smbclient ... <eof
commande
...
eof
aucune variable ne sera pas assigné, parce que ce procédé n'est pas implémenté dans le protocole smb (si je me souviens bien).
pour télécharger tous les fichiers du répertoire auquel tu accèdes, utilise la commande mget.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 16/03/2017, à 09:10
- temps
Re : [résolu] copier le contenue d'un repertoire partagé
Bonjour,
Merci pour les réponses, avec
#!/bin/bash
rm -R /home/PC_modif/Desktop/Working_directory/*
cd /home/PC_modif/Desktop/Working_directory
smbclient \\\\ip_mon_server\\Working_directory -U nom_monserver -N<<'eof'
mget *.*
eof
exit 0
Je m'approche de la solution, mais ça marche pas encore.
Cordialement
Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net
Hors ligne
#5 Le 16/03/2017, à 09:56
- temps
Re : [résolu] copier le contenue d'un repertoire partagé
Bonjour,
Le petit détail qui manque, c'est le pront de validation. Je savais que j'étais pas loin car je voyais le point d’interrogation après le get ...
Le script qui permet de télécharger automatiquement un répertoire en partage sans passer par scp est :
#!/bin/bash
rm -R /home/PC_modif/Desktop/Working_directory/*
cd /home/PC_modif/Desktop/Working_directory
smbclient \\\\ip_mon_server\\Working_directory -U nom_monserver -N<<eof
prompt off
mget *.*
eof
exit 0
Je poste en résolu.
Cordialement
Parce que l'USB bootable est le support des systèmes experts,
Parce que l'USB bootable contient sa propre image au démarrage.
L'USB bootable permet de créer un monde à la dimension de son imagination
https://www.letime.net
Hors ligne