Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Pour en savoir un peu plus sur l'équipe du forum.

Appel à contributeurs pour la doc.

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 15/03/2017, à 16: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, à 10: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

Hors ligne

#2 Le 15/03/2017, à 17:49

Hizoka

Re : [résolu] copier le contenue d'un repertoire partagé

Salut

var1 =$(ls)

=>

var1=$(ls)

?

Hors ligne

#3 Le 15/03/2017, à 18: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.


eval, c'est mal.

Hors ligne

#4 Le 16/03/2017, à 10: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

Hors ligne

#5 Le 16/03/2017, à 10: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

Hors ligne