Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 06-07-2017 10:10:35

arnaud.trajets
Membre
Inscription : 06-07-2017

transfert automatique de fichiers

Bonjour,

Ce que je veux faire:
Via une machine Linux, prendre des fichiers d'un serveur Synology dans le réseau local et les passer à un serveur ftp distant, le tout de manière automatique.

Où j'en suis:
J'ai un script qui monte le dossier du Synology (//192.168.1.10/Partages) dans le système de fichiers (/media/Partages), copie les fichiers sur la machine Linux et fait un ftp vers le serveur distant:
#!/bin/bash
sudo mkdir /media/Partages
sudo mount -t cifs -o username=poolinfo,rw,iocharset=utf8,file_mode=0777,dir_mode=0777 //192.168.1.10/Partages /media/Partages
mkdir /home/poolinfo/Documents/ftp/temp
cp /media/Partages/Arnaud/test-transmission/* /home/poolinfo/Documents/ftp/temp
HOST=**************
USER=**************
PASSWORD=*************
ftp -in $HOST <<EOT
user $USER $PASSWORD
cd /test-transmission
lcd /home/poolinfo/Documents/ftp/temp
mput *
bye
EOT
cd /home/poolinfo/Documents/ftp
rm -r temp/

Ce qu'il reste à faire:
Automatiser l'exécution du script via crontab (ça je dois arriver à le faire) et faire que le script ne demande pas le mot de passe root ni celui pour accéder au Synology.

Est-ce que quelqu'un a déjà fait quelque chose de ce type?

Dernière modification par arnaud.trajets (06-07-2017 10:12:44)

Hors ligne

#2 06-07-2017 11:07:28

daufinsyd
Membre
Lieu : 68, 63, Karlsruhe
Distrib. : Manjaro + Debian Stable + Xubuntu
Noyau : Linux 4.9-amd64
(G)UI : Plasma 5.10
Inscription : 02-02-2013
Site Web

Re : transfert automatique de fichiers

Salut smile

J'avais fait quelque chose du genre pour copier périodiquement une db sqlite ce-ci dit j'avais utilisé un simple scp.

Pour ce que tu veux faire je pense que tu peux éditer le fichier /etc/sudoers pour qu'il t'autorise à exécuter ton script en root sans demander de mot de passe ; en ajoutant une ligne comme celle-ci :

ton_user ALL=(root) NOPASSWD: /home/ton_user/ton_script.sh



puis exécute ton script avec sudo.
tu peux supprimer les sudo à l'intérieur de ton script.


Une autre méthode serait d'éditer le crontab en root pour que ce soit ce dernier qui exécute ton script.

ATTENTION, le script ne doit pas pouvoir être modifié par quelqu'un d'autre que root sinon c'est donner une manifique élévation de privilège à quiconque se connecte sur ton pc ^^


Écrire ton mot de passe dans le script même, c'est pas top niveau sécurité ...


Aspire V3-772G + SSD 850Evo
Intel i7-4790 - 12Go RAM - GTX460
Intel i7-6700 - 8Go RAM - AMD R9 280X 3Go - SSD 850Evo
Odroid C2, Raspberry Pi Zero

Hors ligne

#3 06-07-2017 11:30:24

arnaud.trajets
Membre
Inscription : 06-07-2017

Re : transfert automatique de fichiers

Tout d'abord merci pour la réponse rapide.
J'ai supprimé les sudo dans le script et ai attribué celui-ci à root.
J'ai opté pour la seconde solution (crontab de root) mais ça ne marche pas:
depuis la console: sudo ftp01 -> fonctionne
par crontab de root: 00 12 * * * ftp01 >> /home/poolinfo/cron.log 2>&1 -> ne fonctionne pas (pas de fichiers copiés ni aucun message dans cron.log)

Hors ligne

#4 06-07-2017 13:51:03

daufinsyd
Membre
Lieu : 68, 63, Karlsruhe
Distrib. : Manjaro + Debian Stable + Xubuntu
Noyau : Linux 4.9-amd64
(G)UI : Plasma 5.10
Inscription : 02-02-2013
Site Web

Re : transfert automatique de fichiers

smile
ftp01 est ton script ou est-ce une commande ?

s'il s'agit d'un script il faut donner le chemin complet dans le crontab

 0 12 * * * /bin/bash -c '/ton/script.sh >> /home/poolinfo/cron.log 2>&1'



Pour vérifier que la tâche est lancée regarde le log de cron

journalctl -u cron


Aspire V3-772G + SSD 850Evo
Intel i7-4790 - 12Go RAM - GTX460
Intel i7-6700 - 8Go RAM - AMD R9 280X 3Go - SSD 850Evo
Odroid C2, Raspberry Pi Zero

Hors ligne

#5 06-07-2017 16:30:15

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : transfert automatique de fichiers

Bonjour

Dans mes souvenirs, j'ai retrouvé ce qui suit qui utilise inotifywait

https://www.debian-fr.xyz/viewtopic.php … 809#p10146

Dernière modification par MicP (06-07-2017 16:44:14)

Hors ligne

#6 07-07-2017 09:01:52

arnaud.trajets
Membre
Inscription : 06-07-2017

Re : transfert automatique de fichiers

Merci pour votre aide.

Comme ceci, ça fonctionne:
1) Je crée manuellement, une fois pour toutes, le dossier /media/Partages dans lequel le dossier Partages du Synology est ensuite
   monté automatiquement par le script. Lors du redémarrage de Linux, ce dossier est vidé mais pas supprimé.
2) J'édite la crontab de root (sudo crontab -e) en ajoutant la ligne suivante:
      25 15 * * * /bin/bash -c '/home/utilisateur/script.sh > /home/utilisateur/cron.log 2>&1'
3) Je place le script suivant dans /home/utilisateur/:
      #!/bin/bash
      mount -t cifs -o username=poolinfo,rw,iocharset=utf8,file_mode=0777,dir_mode=0777 //192.168.1.10/Partages /media/Partages
      mkdir /tmp/cp-ftp
      cp /media/Partages/Arnaud/test-transmission/* /tmp/cp-ftp
      HOST=********
      USER=********
      PASSWORD=********
      ftp -inv $HOST <<EOT
      user $USER $PASSWORD
      cd /test-transmission
      lcd /tmp/cp-ftp
      mput *
      bye
      EOT
      rm -rf /tmp/cp-ftp/
4) J'attribue le script à root avec:
      chown root script.sh

De cette manière, le mot de passe de root n'est plus demandé. Ce qui m'intrigue, c'est que le Synology demande en principe un identifiant/mot de passe pour accéder au dossier Partages. Or, avec cette méthode, rien n'est demandé et les fichiers sont bien transférés.

Hors ligne

#7 13-07-2017 10:52:25

arnaud.trajets
Membre
Inscription : 06-07-2017

Re : transfert automatique de fichiers

Bonjour,

Est-ce que quelqu'un à une idée par rapport à la non-demande de l'identifiant/mot de passe du Synology?

Hors ligne

#8 13-07-2017 11:34:05

Croutons
Membre
Distrib. : Handylinux 2.5 vers Jessie et Debian Stretch
Noyau : Linux 3.16.0-4-686-pae, Linux 4.9.0-3-686-pae
(G)UI : xfce
Inscription : 16-12-2016

Re : transfert automatique de fichiers

Bonjour
J'étais dans la configuration de mon serveur multimedia et j'ai vu quelques info en passant

je pense qu'il faut que tu regarde du coté de credentials
https://wiki.debian.org/SAMBAClientSetu … ToDo%29%29
https://doc.ubuntu-fr.org/tutoriel/acce … plications
vois aussi

man mount.cifs

Hors ligne

#9 14-07-2017 11:24:48

arnaud.trajets
Membre
Inscription : 06-07-2017

Re : transfert automatique de fichiers

Merci.
Comme décrit dans le deuxième lien, j'ai:
   - installé smb et cifs-utils
   - mis la ligne de commande de montage dans /etc/fstab au lieu de dans mon script.
   - créé le fichier /root/.smbcredentials.
Comme avant, peu importe le nom d'utilisateur et le mot de passe fournis dans .smbcredentials, le dossier est monté automatiquement au démarrage (sans demander de mot de passe).

Hors ligne

#10 14-07-2017 12:02:08

Croutons
Membre
Distrib. : Handylinux 2.5 vers Jessie et Debian Stretch
Noyau : Linux 3.16.0-4-686-pae, Linux 4.9.0-3-686-pae
(G)UI : xfce
Inscription : 16-12-2016

Re : transfert automatique de fichiers

Bonjour
Je soupçonne que ton serveur doit être réglé pour accepter les connexions anonyme ?

Hors ligne

#11 Hier 08:18:57

arnaud.trajets
Membre
Inscription : 06-07-2017

Re : transfert automatique de fichiers

Bonjour,

Ca doit être ça.

J'ai eu un autre problème que j'ai mis du temps à résoudre et j'aimerais éviter que d'autres perdent du temps avec ça.
C'est lié au ftp. Pour transférer des fichiers binaires (par opposition aux fichiers texte ascii, des archives *.tar dans mon cas), il faut passer ftp en mode binaire avec le mot clé "binary" avant le "get"ou le "put", sinon les fichiers sont corrompus.

Hors ligne

#12 Hier 08:40:21

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 8 (jessie) 64 bits + backports
Noyau : 3.16.0-4-amd64 - 3.16.39-1
(G)UI : gnome 1:3.14+3
Inscription : 21-10-2008

Re : transfert automatique de fichiers

Impec, mis l'indication pour le transfert des fichiers binaires sur le wiki là :
https://debian-facile.org/doc:reseau:ft … s-le-forum
... 58-226f.gif

"Théo et Adama te rappellent pourquoi Zyed et Bouna couraient…"
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

Hors ligne

Pied de page des forums