2013-04-26 3 views
0
$ find /opt/backup/test -name "*.gz" -exec smbclient -A \ 
/opt/backup/smbclient_authentication.txt //1.1.1.1/test -c put '{}' \; 

Il y a plusieurs répertoires et d'autres fichiers, puis *.gz sous la dir et je veux déplacer les fichiers trouvés avec FIND avec smbclient. Bien sûr, cela ne fonctionne pas, car il me manque le dernier morceau. Connexion au partage fonctionne, et find fonctionne, c'est juste le dernier bit qui ne fonctionne pas. Des idées?Trouver des fichiers spécifiques et les déplacer avec smbclient

Répondre

1

Vous pouvez utiliser xargs pour créer des paramètres de flux d'entrée

xargs find /opt/backup/test -name "*.gz" \ 
    | smbclient -A /opt/backup/smbclient_auth.txt //1.1.1.1/test -c put 

Si je comprends bien que vous voulez déplacer les fichiers localement en plus de transférer la via smb. Vous pouvez:

set -e #<- abort on error 
for f in `find -name '*.gz' -or -name '*.zip'`; do 
    smbclient -A /opt/backup/smbclient_auth.txt //1.1.1.1/test -c put "$f" 
    mv "$f" ./transfered/ 
done 
+0

salut, merci pour l'entrée. Bien que je n'arrive pas à mettre la mise en oeuvre, smbclient va juste "mettre " – user2323684

+0

mettre -e # <- annuler sur l'erreur pour f dans 'find/opt/backup/test -name '* .gz''; faire smbclient -A /opt/backup/smbclient_authentication.txt //1.1.1.1/test -c "mettre f $" fait me donne: fichier distant ouverture NT_STATUS_OBJECT_NAME_INVALID \ /opt/backup/test/asdasdas.gz – user2323684

+0

J'ai également essayé celui-ci: echo '- Mise à jour du dossier client -' smbclient -U $ utilisateur% $ pwd // $ targetIP/$ sharedDirRoot -c "cd $ targetDir; lcd $ linuxSourceDir; invite off; recurse; mput *; " echo '- Client distant mis à jour -' mais mput prend tout ou rien, essayé avec mput * .gz f.ex – user2323684

Questions connexes