Contenu | Rechercher | Menus

Annonce

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.

À propos de l'équipe du forum.

#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

En 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