mavvv

Client FTP avancé

Recommended Posts

Bonjour à tous,

 

Je viens de me commander un proliant N54L pour pouvoir installer CPEnology. Pour le moment, je ne pose pas de questions concernant l'installation vu que je ne l'ai pas encore reçu.

Par contre, je suis en train de regarder les packages qui pourraient m'interesser.

 

En fait, je voudrais faire la procédure suivante sur mon futur "syno" et je voulais savoir si cela est possible :

- se connecter sur un serveur FTP distant en SFTP

- vérifier à interval régulier si de nouveaux fichiers apparaissent sur un répertoire donné.

- si présence de nouveaux fichiers, lancer le download de ces fichiers

 

Le top du top serait d'avoir également les fonctionnalités suivantes :

- faire un controle de la date du fichier sur le serveur distant

- si fichier date de plus de X jours, supprimer ce fichier.

 

Pensez vous qu'il existe un package qui pourrait faire cela ? Car le client ftp de base proposé dans DSM ne fait pas cela si je ne m'absuse.

 

Merci par avance pour vos retours.

mavvv

Share this post


Link to post
Share on other sites

Bonjour,

 

Bienvenue sur le forum XPEnology.

 

Pour ta question, oui il existe des packages additionnel dont tu trouveras un tuto en sujet épinglé,une petite recherche sur le forum et tu aurais trouvé directement.

Néan moin je peux comprendre ta demande si tu es nouveau utilisateurs.

 

Si tu ne trouves pas réponses a ta demande, tu peux revenir demander ici.

 

Une fois ta recherche effectué ainsi que ton packages installé,je t'invite a éditer ton premier post et y inclure [Résolu dans ton titre.

 

 

Si tu as d'autres questions,n'hésite pas !

 

 

Bonne journée

Share this post


Link to post
Share on other sites

Bonjour tousmic et merci pour ta réponse.

 

J'ai effectivement vu certains sujets épinglés comme "Liste de packages pour XPEnology ".

Je me suis "baladé" sur les différents repository listés dans ce thread mais je n'ai pas trouvé de package qui aurait pu remplir le role que je recherche.

Néanmoins, je vais refaire une passe complète car il n'est pas impossible que j'en ai oublié.

Aussi, toutes mes excuses si ma demande trouve déjà réponse dans un autre thread épinglé.

 

Au pire, si ca existe pas, il me reste toujours la solution de faire un listener en java qui se réveille à interval régulier pour faire un check et rapatriement des fichiers par ftp.

Disons que si cela existait déjà, cela m'éviterait de devoir le faire moi même :grin:

Share this post


Link to post
Share on other sites

Pas la peine de t'escuser tracasse,des fois les membres ne prennent meme pas la peine de faire des recherches mais comme toi tu en as fait alors ignore cette phrase a propos de la recherche :wink:

Share this post


Link to post
Share on other sites

Bonjour à tous,

 

Juste pour vous tenir informé des mes avancés sur le point qui m'occupe.

 

Rappel des faits :

- pouvoir faire une synchronisation avec une seedbox pour le rapatriement automatique des fichiers présents sur la seedbox

- "analyser" les fichiers pour déterminer si film/series/musique/autre

- déplacer les fichiers dans les bons répertoires (films, séries, etc...)

- renommer les fichiers avec des noms plus lisible

- supprimer les fichiers présents sur la seedbox après un certain temps (paramétrable) pour éviter des hit&run

 

Au départ, je pensais passer par un soft ftp "intelligent" mais aucun package dispo actuellement.

Je suis donc partis de ca : http://www.legeektechno.fr/serveurs/rec ... edbox.html

C'est à dire, utiliser la commande RSync pour synchroniser la seedbox et le syno.

Le package installé sur la seedbox, ca fonctionne au poil mais :

- ca impose de "déporter" une partie de la gestion coté seedbox et je veux tout conserver coté nas.

- impossible de savoir quand est passé le script coté NAS pour effectuer le reste du boulot (déplacement, renommage, suppression).

- j'ai du créer une clé de mon syno vers la seedbox. Du coup, toujours un risque que si quelqu'un "hack" ma seedbox. Il a alors le chemin libre pour se connecter à mon syno.

 

N'étant pas un "pro" des scripts SH, j'ai donc décidé de faire un petit prog java qui ferait la chose suivante :

- récupération des nouveaux fichiers coté seedbox avec script sh rsync vers le syno

- check coté syno si présence de fichiers supérieurs à 2 jours (pour éviter le hit&run). Si oui, alors supression du fichier coté syno. Puis lancement du script sh rsync avec l'option -delete-before vers la seedbox. Ainsi, tous les fichiers que j'ai effacé coté syno seront également effacés coté seedbox.

- analyse du nom des nouveaux fichiers pour déterminer le type (film, series...)

- copie de ces fichiers dans les bons répertoire avec renommage des fichiers

 

J'ai réussis à faire celà sans trop de soucis mais ensuite... C'est le drame.

- Si je lance le script via une fenetre ssh : resultat OK-KO mais ne fonctionne qu'une fois ou tant que je kill pas la fenêtre ssh si mon code java fonctionne en tache planifiée (via une java.util.TimerTask)

- Si je lance le script via les taches planifiées du syno : Resultat KO. Il ne trouve pas la commande java. Je pense que c'est lié au fait que le planificateur de tache du syno ne lance pas les commandes avec tout l'environnement linux de l'utilisateur selectionné. Du coup, il n'a pas les bonnes variables d'environnement java (JAVA_HOME, etc...)

- Si je lance le script via une fenetre ssh avec l'option nohup : Resultat KO. Ca fonctionne tant que je ferme pas la fenetre si j'utilise une Task Java qui se relance toutes les X minutes. Meme avec l'option nohup, si je kill ma fenetre, il me kill tous mes process dont ma tache nohup. Soucis qui semble se confirmer dans des échanges sur le forum officiel syno : http://forum.synology.com/enu/viewtopic ... 90&t=32983

- Si je lance le script via le package "Cronjob Editor". Resultat KO. Il semble me lancer le script avec l'utilisateur root et ce même si je spécifie un autre user. Or, ma seedbox n'accepte qu'une clé publique venant du user "batch" que j'ai créé sur mon Syno. Du coup, j'ai une "Validation Key failed" coté seedbox qui refuse la connexion ssh pour le rsync avec le user "rrot".

 

Il me reste plusieurs tests à faire :

- autoriser le compte "root" du syno à se connecter en ssh à ma seedbox en lui générant une clé autorisée sur la seedbox. Ca me plait moyen, car je veux que ce soit mon utilisateur "batch" et non "root qui exécute la commande. Mais dans ce cas, je devrais pouvoir utiliser le cron du syno

- installer Ipkg pour pouvoir installer la commande screen et tenter de lancer le script sh au démarrage du syno via la commande screen pour ne pas qu'il kill le process. Mais dans ce cas, il faut que je traite le fait de relancer le script à interval régulier via une Task java. Je préférerais utiliser la crontab du syno.

- installer le cron linux par défaut et voir si le bon user est utilisé pour lancer ma commande.

 

De plus je rencontre le problème suivant :

- Pour pouvoir lancer le script rsync coté seedbox, j'ai du créer une clé pour la seedbox sur le syno. Ca fonctionne sans soucis hormis un petit hic : maintenant, je ne peux plus me connecter en ssh sur mon syno en direct. Il me dit que je n'ai pas de clé valide. Actuellement, pour me connecter au syno, je dois d'abord me connecter à ma seedbox en ssh. Puis de ma seedbox, me connecter en ssh sur mon syno. Super chiant d'autant que je peux pas me connecter ensuite en root (non autorisé). Il faudrait d'abord que je crée une clé ssh pour le compte root à destination de la seedbox mais encore faudrait il que j'arrive d'abord à me connecter en root sur mon syno (tout le monde suite encore ?).

Bref, je ne peux plus, actuellement, me connecter en SSH sur mon syno qu'en passant par un SSH via ma seedbox. Un poil ennuyeux tout de même.

 

 

Bref, face à tout cela, j'ai décidé :

- de faire une réinstall complète de mon xpenology pour

* résoudre ce soucis de connexion SSH à mon syno

* virer les pkg foireux que j'ai pu installer pour mes différents tests.

- installer Ipkg pour utiliser la commande "screen" ou un cron valide

 

A suivre...

Share this post


Link to post
Share on other sites