
Langer
Membres-
Compteur de contenus
89 -
Inscription
-
Dernière visite
-
Jours gagnés
1
Langer's Achievements
-
[TUTO] Certificat Let's Encrypt avec acme.sh & api Ovh en Docker (DSM6/7) (Update 07/09/22)
Langer a répondu à un(e) sujet de Einsteinium dans Tutoriels
Hello @Mic13710 Bon j'ai tout repris depuis le départ, avec des nouvelles clés. Je suis aussi passé par l'éditeur de texte de synology au lieu de notepad++ pour account.conf. La génération du certificat est finalement passée. Je suis arrivé au bout du tuto, a voir si ca se renouvelle auto dans 2 mois :) Merci à toi -
[TUTO] Certificat Let's Encrypt avec acme.sh & api Ovh en Docker (DSM6/7) (Update 07/09/22)
Langer a répondu à un(e) sujet de Einsteinium dans Tutoriels
Hello, Je tourne en rond depuis toute la journée sur l'étape 2D, j'ai fait plusieurs essais, avec différents NDD chez OVH. Je n'arrive à obtenir les certificats, j'obtiens toujours le ndd.org.conf ndd.org.csr ndd.org.csr.conf ndd.org.key, rien n'y fait. Error adding TXT record to domain: _acme-challenge.ndd.org Est ce qu'il y a quelque chose à faire du côté de OVH pour autoriser des entrées DNS ? Si quelqu'un passe par là, je le remercie d'avance !! Voici mon log : [Wed Sep 3 01:35:09 UTC 2025] Running cmd: issue [Wed Sep 3 01:35:09 UTC 2025] _main_domain='ndd.org' [Wed Sep 3 01:35:09 UTC 2025] _alt_domains='*.ndd.org' [Wed Sep 3 01:35:09 UTC 2025] Using config home: /acme.sh [Wed Sep 3 01:35:09 UTC 2025] default_acme_server='https://acme-v02.api.letsencrypt.org/directory' [Wed Sep 3 01:35:09 UTC 2025] ACME_DIRECTORY='https://acme-v02.api.letsencrypt.org/directory' [Wed Sep 3 01:35:09 UTC 2025] DOMAIN_PATH='/acme.sh/ndd.org' [Wed Sep 3 01:35:09 UTC 2025] Le_NextRenewTime [Wed Sep 3 01:35:09 UTC 2025] Using ACME_DIRECTORY: https://acme-v02.api.letsencrypt.org/directory [Wed Sep 3 01:35:09 UTC 2025] _init API for server: https://acme-v02.api.letsencrypt.org/directory [Wed Sep 3 01:35:09 UTC 2025] GET [Wed Sep 3 01:35:09 UTC 2025] url='https://acme-v02.api.letsencrypt.org/directory' [Wed Sep 3 01:35:09 UTC 2025] timeout=10 [Wed Sep 3 01:35:09 UTC 2025] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g --connect-timeout 10' [Wed Sep 3 01:35:10 UTC 2025] ret='0' [Wed Sep 3 01:35:10 UTC 2025] ACME_KEY_CHANGE='https://acme-v02.api.letsencrypt.org/acme/key-change' [Wed Sep 3 01:35:10 UTC 2025] ACME_NEW_AUTHZ [Wed Sep 3 01:35:10 UTC 2025] ACME_NEW_ORDER='https://acme-v02.api.letsencrypt.org/acme/new-order' [Wed Sep 3 01:35:10 UTC 2025] ACME_NEW_ACCOUNT='https://acme-v02.api.letsencrypt.org/acme/new-acct' [Wed Sep 3 01:35:10 UTC 2025] ACME_REVOKE_CERT='https://acme-v02.api.letsencrypt.org/acme/revoke-cert' [Wed Sep 3 01:35:10 UTC 2025] ACME_AGREEMENT='https://letsencrypt.org/documents/LE-SA-v1.5-February-24-2025.pdf' [Wed Sep 3 01:35:10 UTC 2025] ACME_NEW_NONCE='https://acme-v02.api.letsencrypt.org/acme/new-nonce' [Wed Sep 3 01:35:10 UTC 2025] Using CA: https://acme-v02.api.letsencrypt.org/directory [Wed Sep 3 01:35:10 UTC 2025] _on_before_issue [Wed Sep 3 01:35:10 UTC 2025] _chk_main_domain='ndd.org' [Wed Sep 3 01:35:10 UTC 2025] _chk_alt_domains='*.ndd.org' [Wed Sep 3 01:35:10 UTC 2025] Le_LocalAddress [Wed Sep 3 01:35:10 UTC 2025] d='ndd.org' [Wed Sep 3 01:35:10 UTC 2025] Checking for domain='ndd.org' [Wed Sep 3 01:35:10 UTC 2025] _currentRoot='dns_ovh' [Wed Sep 3 01:35:10 UTC 2025] d='*.ndd.org' [Wed Sep 3 01:35:10 UTC 2025] Checking for domain='*.ndd.org' [Wed Sep 3 01:35:10 UTC 2025] _currentRoot='dns_ovh' [Wed Sep 3 01:35:10 UTC 2025] d [Wed Sep 3 01:35:10 UTC 2025] _saved_account_key_hash was not changed, skipping account registration. [Wed Sep 3 01:35:10 UTC 2025] Read key length: 4096 [Wed Sep 3 01:35:10 UTC 2025] _createcsr [Wed Sep 3 01:35:10 UTC 2025] Multi domain='DNS:ndd.org,DNS:*.ndd.org' [Wed Sep 3 01:35:10 UTC 2025] Getting domain auth token for each domain [Wed Sep 3 01:35:10 UTC 2025] d='*.ndd.org' [Wed Sep 3 01:35:10 UTC 2025] d [Wed Sep 3 01:35:10 UTC 2025] STEP 1, Ordering a Certificate [Wed Sep 3 01:35:10 UTC 2025] =======Sending Signed Request======= [Wed Sep 3 01:35:10 UTC 2025] url='https://acme-v02.api.letsencrypt.org/acme/new-order' [Wed Sep 3 01:35:10 UTC 2025] payload='{"identifiers": [{"type":"dns","value":"ndd.org"},{"type":"dns","value":"*.ndd.org"}]}' [Wed Sep 3 01:35:10 UTC 2025] EC key [Wed Sep 3 01:35:10 UTC 2025] HEAD [Wed Sep 3 01:35:10 UTC 2025] _post_url='https://acme-v02.api.letsencrypt.org/acme/new-nonce' [Wed Sep 3 01:35:10 UTC 2025] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g -I ' [Wed Sep 3 01:35:10 UTC 2025] _ret='0' [Wed Sep 3 01:35:10 UTC 2025] POST [Wed Sep 3 01:35:10 UTC 2025] _post_url='https://acme-v02.api.letsencrypt.org/acme/new-order' [Wed Sep 3 01:35:10 UTC 2025] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g ' [Wed Sep 3 01:35:11 UTC 2025] _ret='0' [Wed Sep 3 01:35:11 UTC 2025] code='201' [Wed Sep 3 01:35:11 UTC 2025] Le_LinkOrder='https://acme-v02.api.letsencrypt.org/acme/order/' [Wed Sep 3 01:35:11 UTC 2025] Le_OrderFinalize='https://acme-v02.api.letsencrypt.org/acme/finalize/ [Wed Sep 3 01:35:11 UTC 2025] =======Sending Signed Request======= [Wed Sep 3 01:35:11 UTC 2025] url='https://acme-v02.api.letsencrypt.org/acme/authz/' [Wed Sep 3 01:35:11 UTC 2025] payload [Wed Sep 3 01:35:11 UTC 2025] POST [Wed Sep 3 01:35:11 UTC 2025] _post_url='https://acme-v02.api.letsencrypt.org/acme/authz/' [Wed Sep 3 01:35:11 UTC 2025] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g ' [Wed Sep 3 01:35:11 UTC 2025] _ret='0' [Wed Sep 3 01:35:11 UTC 2025] code='200' [Wed Sep 3 01:35:11 UTC 2025] =======Sending Signed Request======= [Wed Sep 3 01:35:11 UTC 2025] url='https://acme-v02.api.letsencrypt.org/acme/authz/' [Wed Sep 3 01:35:11 UTC 2025] payload [Wed Sep 3 01:35:11 UTC 2025] POST [Wed Sep 3 01:35:11 UTC 2025] _post_url='https://acme-v02.api.letsencrypt.org/acme/authz/' [Wed Sep 3 01:35:11 UTC 2025] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g ' [Wed Sep 3 01:35:12 UTC 2025] _ret='0' [Wed Sep 3 01:35:12 UTC 2025] code='200' [Wed Sep 3 01:35:12 UTC 2025] d='ndd.org' [Wed Sep 3 01:35:12 UTC 2025] Getting webroot for domain='ndd.org' [Wed Sep 3 01:35:12 UTC 2025] _w='dns_ovh' [Wed Sep 3 01:35:12 UTC 2025] _currentRoot='dns_ovh' [Wed Sep 3 01:35:12 UTC 2025] _authz_url='https://acme-v02.api.letsencrypt.org/acme/authz/' [Wed Sep 3 01:35:12 UTC 2025] entry='"type":"dns-01","url":"https://acme-v02.api.letsencrypt.org/acme/chall/","status":"pending","token":"b5_bwI3e8-EsDYuCwEqg-nMMINvLa0yln68iqrv1IrM"' [Wed Sep 3 01:35:12 UTC 2025] token='' [Wed Sep 3 01:35:12 UTC 2025] uri='https://acme-v02.api.letsencrypt.org/acme/chall/ [Wed Sep 3 01:35:12 UTC 2025] dvlist='ndd.org##https://acme-v02.api.letsencrypt.org/acme/chall/w#dns-01#dns_ovh#https://acme-v02.api.letsencrypt.org/acme/authz/2635992931/577987737191' [Wed Sep 3 01:35:12 UTC 2025] d='*.ndd.org' [Wed Sep 3 01:35:12 UTC 2025] Getting webroot for domain='*.ndd.org' [Wed Sep 3 01:35:12 UTC 2025] _w='dns_ovh' [Wed Sep 3 01:35:12 UTC 2025] _currentRoot='dns_ovh' [Wed Sep 3 01:35:12 UTC 2025] _authz_url='https://acme-v02.api.letsencrypt.org/acme/authz/' [Wed Sep 3 01:35:12 UTC 2025] entry='"type":"dns-01","url":"https://acme-v02.api.letsencrypt.org/acme/chall/","status":"pending","token":"9TUB5kJfPJh3uJg5wsYGdWPofgu1UFLeAx9RbFSBX2k"' [Wed Sep 3 01:35:12 UTC 2025] token='' [Wed Sep 3 01:35:12 UTC 2025] uri='https://acme-v02.api.letsencrypt.org/acme/chall/' [Wed Sep 3 01:35:12 UTC 2025] keyauthorization='' [Wed Sep 3 01:35:12 UTC 2025] dvlist='*.ndd.org##https://acme-v02.api.letsencrypt.org/acme/chall/#dns-01#dns_ovh#https://acme-v02.api.letsencrypt.org/acme/authz/2635992931/577987737171' [Wed Sep 3 01:35:12 UTC 2025] d [Wed Sep 3 01:35:12 UTC 2025] vlist='ndd.org##https://acme-v02.api.letsencrypt.org/acme/chall/#dns-01#dns_ovh#https://acme-v02.api.letsencrypt.org/acme/authz/2635992931/577987737191,*.ndd.org#9TUB5kJfPJh3uJg5wsYGdWPofgu1UFLeAx9RbFSBX2k.29I_CCNJoMlONPRA7xLgCdrzibb3b6OYcTlz_-urAew#https://acme-v02.api.letsencrypt.org/acme/chall/2635992931/577987737171/8vxsvg#dns-01#dns_ovh#https://acme-v02.api.letsencrypt.org/acme/authz/2635992931/577987737171,' [Wed Sep 3 01:35:12 UTC 2025] d='ndd.org' [Wed Sep 3 01:35:12 UTC 2025] _d_alias [Wed Sep 3 01:35:12 UTC 2025] txtdomain='_acme-challenge.ndd.org' [Wed Sep 3 01:35:12 UTC 2025] txt='' [Wed Sep 3 01:35:12 UTC 2025] d_api='/root/.acme.sh/dnsapi/dns_ovh.sh' [Wed Sep 3 01:35:12 UTC 2025] Found domain API file: /root/.acme.sh/dnsapi/dns_ovh.sh [Wed Sep 3 01:35:12 UTC 2025] Adding TXT value: for domain: _acme-challenge.ndd.org [Wed Sep 3 01:35:12 UTC 2025] Using OVH endpoint: ovh-eu [Wed Sep 3 01:35:12 UTC 2025] OVH_API='https://eu.api.ovh.com/1.0' [Wed Sep 3 01:35:12 UTC 2025] Checking authentication [Wed Sep 3 01:35:12 UTC 2025] domain [Wed Sep 3 01:35:12 UTC 2025] GET [Wed Sep 3 01:35:12 UTC 2025] url='https://eu.api.ovh.com/1.0/auth/time' [Wed Sep 3 01:35:12 UTC 2025] timeout=30 [Wed Sep 3 01:35:12 UTC 2025] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g --connect-timeout 30' [Wed Sep 3 01:35:12 UTC 2025] ret='0' [Wed Sep 3 01:35:12 UTC 2025] _ovh_p='[hidden](please add '--output-insecure' to see this value)' [Wed Sep 3 01:35:12 UTC 2025] GET [Wed Sep 3 01:35:12 UTC 2025] url='https://eu.api.ovh.com/1.0/domain' [Wed Sep 3 01:35:12 UTC 2025] timeout= [Wed Sep 3 01:35:12 UTC 2025] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g ' [Wed Sep 3 01:35:12 UTC 2025] ret='0' [Wed Sep 3 01:35:12 UTC 2025] Consumer key is ok. [Wed Sep 3 01:35:12 UTC 2025] First detect the root zone [Wed Sep 3 01:35:12 UTC 2025] domain/zone/_acme-challenge.ndd.org [Wed Sep 3 01:35:12 UTC 2025] GET [Wed Sep 3 01:35:12 UTC 2025] url='https://eu.api.ovh.com/1.0/auth/time' [Wed Sep 3 01:35:12 UTC 2025] timeout=30 [Wed Sep 3 01:35:12 UTC 2025] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g --connect-timeout 30' [Wed Sep 3 01:35:12 UTC 2025] ret='0' [Wed Sep 3 01:35:12 UTC 2025] _ovh_p='[hidden](please add '--output-insecure' to see this value)' [Wed Sep 3 01:35:12 UTC 2025] GET [Wed Sep 3 01:35:12 UTC 2025] url='https://eu.api.ovh.com/1.0/domain/zone/_acme-challenge.ndd.org' [Wed Sep 3 01:35:12 UTC 2025] timeout= [Wed Sep 3 01:35:12 UTC 2025] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g ' [Wed Sep 3 01:35:12 UTC 2025] ret='0' [Wed Sep 3 01:35:12 UTC 2025] _sub_domain='_acme-challenge' [Wed Sep 3 01:35:12 UTC 2025] _domain='_acme-challenge.ndd.org' [Wed Sep 3 01:35:12 UTC 2025] Adding record [Wed Sep 3 01:35:12 UTC 2025] domain/zone/_acme-challenge.ndd.org/record [Wed Sep 3 01:35:12 UTC 2025] GET [Wed Sep 3 01:35:12 UTC 2025] url='https://eu.api.ovh.com/1.0/auth/time' [Wed Sep 3 01:35:12 UTC 2025] timeout=30 [Wed Sep 3 01:35:12 UTC 2025] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g --connect-timeout 30' [Wed Sep 3 01:35:12 UTC 2025] ret='0' [Wed Sep 3 01:35:12 UTC 2025] _ovh_p='[hidden](please add '--output-insecure' to see this value)' [Wed Sep 3 01:35:12 UTC 2025] data='{"fieldType":"TXT","subDomain":"_acme-challenge","target":"","ttl":60}' [Wed Sep 3 01:35:12 UTC 2025] POST [Wed Sep 3 01:35:12 UTC 2025] _post_url='https://eu.api.ovh.com/1.0/domain/zone/_acme-challenge.ndd.org/record' [Wed Sep 3 01:35:12 UTC 2025] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g ' [Wed Sep 3 01:35:12 UTC 2025] _ret='0' [Wed Sep 3 01:35:12 UTC 2025] Add txt record error. [Wed Sep 3 01:35:12 UTC 2025] Error adding TXT record to domain: _acme-challenge.ndd.org [Wed Sep 3 01:35:12 UTC 2025] _on_issue_err [Wed Sep 3 01:35:12 UTC 2025] Please check log file for more details: /acme.sh/acme.sh.log [Wed Sep 3 01:35:12 UTC 2025] =======Sending Signed Request======= [Wed Sep 3 01:35:12 UTC 2025] url='https://acme-v02.api.letsencrypt.org/acme/chall/' [Wed Sep 3 01:35:12 UTC 2025] payload='{}' [Wed Sep 3 01:35:13 UTC 2025] POST [Wed Sep 3 01:35:13 UTC 2025] _post_url='https://acme-v02.api.letsencrypt.org/acme/chall/' [Wed Sep 3 01:35:13 UTC 2025] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g ' [Wed Sep 3 01:35:13 UTC 2025] _ret='0' [Wed Sep 3 01:35:13 UTC 2025] code='200' [Wed Sep 3 01:35:13 UTC 2025] =======Sending Signed Request======= [Wed Sep 3 01:35:13 UTC 2025] url='https://acme-v02.api.letsencrypt.org/acme/chall/' [Wed Sep 3 01:35:13 UTC 2025] payload='{}' [Wed Sep 3 01:35:13 UTC 2025] POST [Wed Sep 3 01:35:13 UTC 2025] _post_url='https://acme-v02.api.letsencrypt.org/acme/chall/' [Wed Sep 3 01:35:13 UTC 2025] _CURL='curl --silent --dump-header /acme.sh/http.header -L -g ' [Wed Sep 3 01:35:13 UTC 2025] _ret='0' [Wed Sep 3 01:35:13 UTC 2025] code='200' [Wed Sep 3 01:35:13 UTC 2025] pid [Wed Sep 3 01:35:13 UTC 2025] No need to restore nginx config, skipping. [Wed Sep 3 01:35:13 UTC 2025] _clearupdns [Wed Sep 3 01:35:13 UTC 2025] dns_entries [Wed Sep 3 01:35:13 UTC 2025] Skipping dns. -
[Résolu]HELP, récupération du NAS après un $ rm /*
Langer a répondu à un(e) sujet de Langer dans Installation, Démarrage et Configuration
Hello, mon NAS est de nouveau parfaitement fonctionnel. J'avais juste les Users a recreer finalement. La config était encore intacte, et mes dockers aussi. Assez surprenant. Bon, jai annulé la commande en moins de 10 secondes, ayant réalisé ma bétise 🙂 Merci pour le suivi !! -
[Résolu]HELP, récupération du NAS après un $ rm /*
Langer a répondu à un(e) sujet de Langer dans Installation, Démarrage et Configuration
Salut, Apres un reboot, on m'a proposé la migration du serveur. J'ai perdu quelques morceaux de ma configuration, mais les dossiers partagés sont encore présents. Pour l'instant je vois seulement que mes users ont été effacés, sans toucher à leur dossier home La commande était récursive, je l'ai stoppé au bout de 10sec, réalisant mon erreur... Merci à tous de votre aide. -
[Résolu]HELP, récupération du NAS après un $ rm /*
Langer a répondu à un(e) sujet de Langer dans Installation, Démarrage et Configuration
Merci Mic, Je vais passer quelques heures a tout reconfigurer haha. Ca vaudra la peine de faire une sauvegarde de la config après coup! -
[Résolu]HELP, récupération du NAS après un $ rm /*
Langer a posté un sujet dans Installation, Démarrage et Configuration
Hello, j'ai fait un ENORME boulette les amis. Je voulais supprimer un gros dossier avec la commande $ rm dossier/* mais je n'ai pas pointé le dossier. Résultat, j'ai perdu bcp de fichiers paramètres et fichiers de config. Je n'ai malheureusement pas de sauvegarde pour ma configuration actuelle. Par chance, mes dockers fonctionnent encore et je suis entrain de faire quelques sauvegardes avec Syncthing, pour sauver les meubles. Y a t il un moyen de récupérer la config ou de réinitialiser le DSM sans toucher aux dossiers partagés? Je n'ai plus d'accès en SSH, ni sur IP:5001, ni sur mon nom de domaine. Est ce que le bouton reset sur mon DS412+ va me formater tous les dossiers partagés aussi? Merci, je n'ose plus rien toucher pour l'instant.. -
Salut, j’ai exactement ce même problème vers mon serveur Kimsufi avec Yunohost. Ça fait des mois que je cherche sans solution... jai réinstaller mon serveur Synology et pour serveur Kimsufi mais rien n'y fait. J'ai aussi essayé la manip avec réactiver le compte admin, donner les droits Lecture/Ecriture aux admins, etc. Et pourtant, ça marchait jadis😅 Avez vous d'autres idées? je suis sans recours Merci,
-
Salut, as tu réussi à solutionner le problème ? J'ai réinstaller mon serveur distant sous DEBIAN 11 et j'ai exactement le même souci que toi avec les privilèges insuffisants. EDIT : J'ai meme reinstaller mon Synology, toujours pareil ... Merci,
-
Objectif : Récupération automatique des fichier sur un serveur distant avec rsync, du style Seedbox ou autres Prérequis : Synology avec droits administrateurs / rsync activé / ssh activé Serveur distant sous distribution linux avec droits administrateurs 1. Connexion au Synology On commence par se loguer au Synology avec son compte ADMIN pour générer des clés SSH de connexions : on se connecte en root sudo -i génération des clés SSH, faire 3x entrer pour mettre les clés dans /root/.ssh ssh-keygen -t rsa on vérifie si les clés sont bien générées cd .ssh ls -l Vous devriez voir les clés comme ceci -rw------- 1 root root 1675 May 31 20:09 id_rsa -rw-r--r-- 1 root root 397 May 31 20:09 id_rsa.pub Il faudra importer la clé vers votre serveur distant. Mais tout d'abord, on va se loguer à notre serveur distant avec un autre Putty et paramétrer un USER pour récupérer les fichiers. 2. Connexion au Serveur distant Après s'être loggué, on créer le dossier .ssh mkdir .ssh Puis on donne accès en lecture au USER pour accéder au dossier de la Seedbox par exemple. Dans mon cas, j'ai ajouté mon USER au groupe www-data qui a le droit de lecture sur mon dossier de la Seedbox adduser USER www-data Le côté serveur distant est configuré, on retourne sur la console de gestion du Synology 3. Copie des clés SSH Dans la console du Synology, on va importer la clé SSH par le protocole SCP scp -p /root/.ssh/id_rsa.pub USER@IP.IP.IP.IP:/home/USER/.ssh/ On rentre le mot de passe du USER, et normalement le transfert est effectué. Pour tester si la connexion par clé fonctionne bien à présent, on rentre ssh -p 22 -i /root/.ssh/id_rsa USER@IP.IP.IP.IP Vous devriez être présentement dans la console de gestion du serveur distant, sans avoir eu à rentrer de mot de passe. Le plus dur est fait 🙂 Les manipulations en console sont maintenant terminées. 3. Création de la tâche de rapatriement automatique On va dans la page de gestion du Synology, en se loguant avec son compte admin, et on se dirige vers la planification de tâches On va créer une tâche de travail : CRÉER / Tâche planifiée / Script défini par l'utilisateur Dans l'onglet Général, il faut impérativement mettre l'utilisateur root Dans l'onglet Programmer, on met la fréquence que l'on veut activer la récupération, personnellement j'ai mis toutes les 5 minutes Dans Paramètres de tâche, on va rentrer le script RSYNC Pour ne pas télécharger toutes les 5 minutes le même fichier, il y a des paramètres à ajouter à la commande RSYNC. Aussi, j'ai ajouté un paramètre pour ne pas retransférer un fichier qui a été déplacer du fichier de destination, dans le cas d'un reclassement dans mon Synology bash /root/scripts/rsync.sh rsync -av --inplace --exclude-from transfered_files.txt --log-format='%n' >> transfered_files.txt --rsh='ssh -p22' USER@IP.IP.IP.IP:/chemin de la seedbox// /volume1/chemin de destination/ il y a d'autres paramètres disponibles pour RSYNC, notamment supprimé les fichiers transférés, mais cela ne correspond pas à mes besoins. OPTIONNEL : les fichiers transférées seront la propriété de root, donc on va changer le propriétaire des fichiers dans ce même script, par un USER2, présent sur le Synology chown -R USER2:users /volume1/dossier de destination/ Voici le rendu de la tâche complétée, reste plus qu'à lancer, et ne plus y penser 😄 CHEERS 😉
-
Salut, Tes clés de ton NAS vers ton serveur distant ne doivent plus fonctionner. Il faut refaire la liaison, faire un test et copier les clés dans le dossier de ton Nas suivant /var/packages/HyperBackup/target/.ssh/ Je viens de refaire le tuto, après avoir réinstaller mon serveur distant, j'ai du refaire mes clés ssh 🙂
-
Ssh & Download Station Ou Notification
Langer a répondu à un(e) sujet de GorMsoN dans Terminal Telnet et SSH
Hello, j'ai supprimé la partie du script qui était inutile pour moi, et dé commenté après renommage, et ca refonctionne !!! Le plus gros des mercis !!! @Vinky Voici le script : <?php //Utilisation : <-----------URL------------>/rss.php?dossier=<NOM_DU_DOSSIER> //Si le paramêtre dossier n'est pas mis, le dossier par défaut est listé. /********************************/ /* CONFIGURATION */ /********************************/ $physical_path = '/home/yunohost.transmission/completed'; // Dossier à lister par défaut (ex : /var/www/download) $max = 20; //Nombre de fichiers à afficher dans le flux RSS $site = 'sftp://XXX:XXX@XXXX.org:22'; // IP ou NDD (http://<IP> ou https://<IP> ou ftp://<IP> etc... utilisé pour télécharger les fichiers) $nomDePage = 'Seedbox Langer';// Nom affiché $lienInterne = ''; //position non affiché dans l'url (ex : /var/www/download/fichier.ext et url = http://<IP>/download/fichier.ext, mettre /var/www/ dans ce champs car non présent dans l'url) $tempsAttente = 100; //Temps (en s) sans que le fichier soit modifié avant de le lister. (si trop rapide, il peut apparaître alors que le fichier n'est pas fini de téléchargé). //VOIR LIGNE 100 POUR INDIQUER LES EXTENSIONS AUTORISES : // Ajouter '|| get_file_icon($file)=="ext"' (sans les '') avant la fin de la parenthèse avec ext, l'extension que l'on veut qui soit listé /********************************/ /* FONCTIONS */ /********************************/ $excludeFiles = array(".", "..", ".htaccess", ""); // Liste des fichiers ignorés dans le listing /** * Récupère récursivement le contenu d'un répertoire * et le retourne sous forme d'array * @param $directory Le répertoire à traiter **/ function recursive_directory_tree($directory = null) { global $excludeFiles; //If $directory is null, set $directory to the current working directory. if ($directory == null) { $directory = getcwd(); } //declare the array to return $return = array(); //Check if the argument specified is an array if (is_dir($directory)) { //Scan the directory and loop through the results foreach(scandir($directory) as $file) { //. = current directory, .. = up one level. We want to ignore both. if ($file[0] == ".") { continue; } //Exclude some specified files if (in_array($file, $excludeFiles)) { continue; } //Check if the current $file is a directory itself. //The appending of $directory is necessary here. if (is_dir($directory."/".$file)) { //Create a new array with an index of the folder name. $return[$directory."/".$file] = recursive_directory_tree($directory."/".$file); } else { //If $file is not a directory, just add it to th return array. $return[] = $directory."/".$file; } } } else { $return[] = $directory; } return $return; } /** * Stock dans un tableau tous les fichiers video présents dans le repertoire mis en pareamètre **/ function liste($dossier) { global $tabTrie; foreach ($dossier as $file) { if ( is_array($file) ) { liste($file); } else { # if(get_file_icon($file)=="mp4" || get_file_icon($file)=="mkv" || get_file_icon($file)=="avi" ) { array_push($tabTrie, $file); } } } } /** * Convertit la taille en Xo * @param $fs La taille à convertir */ function convert_size($fs) { if ($fs >= 1073741824) $fs = round($fs / 1073741824 * 100) / 100 . " Go"; elseif ($fs >= 1048576) $fs = round($fs / 1048576 * 100) / 100 . " Mo"; elseif ($fs >= 1024) $fs = round($fs / 1024 * 100) / 100 . " Ko"; else $fs = $fs . " o"; return $fs; } /** * Retourne l'extention d'un fichier en fonction de son type * @filename Le nom du fichier à considérer */ function get_file_icon($filename) { return pathinfo($filename, PATHINFO_EXTENSION); } /** * Retourne le mime d'un fichier * @filename Le nom du fichier à considérer */ function mime_file($filename) { $finfo = finfo_open(FILEINFO_MIME_TYPE); // Retourne le type mime à la extension mimetype $mime=finfo_file($finfo, $filename); finfo_close($finfo); return $mime; } /********************************/ /* FONCTIONS */ /********************************/ #ISO-8859-1 $entete = '<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <atom:link href="'.$site.'/rss.php" rel="self" type="application/rss+xml" /> <xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /> <title>'.$nomDePage.'</title> <link>'.$site.'</link> <language>fr-FR</language> <description>Liste des nouveaux fichiers</description> '; $pied = '</channel> </rss>'; if(isset ($_GET['dossier'])) $physical_path = $physical_path.'/'.$_GET['dossier']; $current_dir = array(); $tab= array(); $tabSize = array(); $tabTrie= array(); $current_dir = recursive_directory_tree($physical_path); liste($current_dir); foreach ($tabTrie as $key => $fichier) { $time = filemtime($fichier); $actualTime = time(); $date = date("F d Y H:i:s.", filemtime($fichier)); if($fichier != '.' && $fichier != '..' && $fichier != 'index.php') { $tab["$fichier"] = $time; $taille=filesize($fichier); $tabSize["$fichier"] = $taille; } } array_multisort($tab, SORT_DESC, $tabSize); echo $entete; $nombre = 1; foreach ($tab as $fichier => $heure) { $nom = basename($fichier); $extension = get_file_icon($fichier,TRUE); $nom = str_replace(".$extension", "" , $nom); $nom = str_replace(".", " " , $nom); /********************************/ /* RENOMMAGE */ /********************************/ if(($actualTime-$heure) > $tempsAttente) { if ($nombre <= $max) { echo(' <item> <title>'.$nom.'</title> <description>'.$nombre.' | Format : '.$extension.' | Date d\'ajout : '. date("d/m/Y H:i:s", $heure).' | Taille : '.convert_size($tabSize["$fichier"]).'</description> <pubDate>'.date("D, d M Y H:i:s", $heure).'</pubDate> <link>'.$site.str_replace($lienInterne, "" ,$fichier).'</link> <enclosure length="'.$tabSize[$fichier].'" type="'.mime_file($fichier).'" url="'.$site.str_replace($lienInterne, "" ,$fichier).'" /> </item> '); $nombre++; } } } echo $pied; ?> -
Ssh & Download Station Ou Notification
Langer a répondu à un(e) sujet de GorMsoN dans Terminal Telnet et SSH
Salut @Vinky, J'ai dé-commenté les sections de Renommage, mais cela ne change rien. Ma dernière mise à jour du flux RSS avec succès remonte à octobre de l'an passé. Après une réinstallation complète du serveur sous Debian 9.x et Yunohost 3.x. Yunohost utilse Nginx et non pas Apache. est ce que cela a un lien ? As tu ton script sous la main, J'ai peut être fait la manip de trop ? Merci, -
Ssh & Download Station Ou Notification
Langer a répondu à un(e) sujet de GorMsoN dans Terminal Telnet et SSH
Salut à tous, J'espère que @Vinky passe encore la dessus. J'ai le même problème que @Mouflo depuis quelques temps... Le script php ne génère que le début d'identification, il ne vient pas chercher les fichiers par la suite. J'ai essayé quelques trucs sans succès. Je suis sur Debian 9.4 Stretch (stable) (64bits) avec YUNOHOST qui roule avec nginx et php7.0 J'ai réussi à installer php5.6 en suivant ce tuto https://stackoverflow.com/questions/46378017/install-php56-in-debian-9, mais le problème persiste. Je ne sais plus trop ou regarder, je n'ai pas les connaissances suffisantes pour trouver une solution. Avez vous vu quelque chose qui cloche ? Voici mon script : <?php //Utilisation : <-----------URL------------>/rss.php?dossier=<NOM_DU_DOSSIER> //Si le paramêtre dossier n'est pas mis, le dossier par défaut est listé. /********************************/ /* CONFIGURATION */ /********************************/ $physical_path = '/home/yunohost.transmission/completed'; // Dossier à lister par défaut (ex : /var/www/download) $max = 20; //Nombre de fichiers à afficher dans le flux RSS $site = 'sftp://XXX:XXXXX@XXXX.org:22'; // IP ou NDD (http://<IP> ou https://<IP> ou ftp://<IP> etc... utilisé pour télécharger les fichiers) $nomDePage = 'Seedbox Langer';// Nom affiché $lienInterne = ''; //position non affiché dans l'url (ex : /var/www/download/fichier.ext et url = http://<IP>/download/fichier.ext, mettre /var/www/ dans ce champs car non présent dans l'url) $tempsAttente = 100; //Temps (en s) sans que le fichier soit modifié avant de le lister. (si trop rapide, il peut apparaître alors que le fichier n'est pas fini de téléchargé). //VOIR LIGNE 100 POUR INDIQUER LES EXTENSIONS AUTORISES : // Ajouter '|| get_file_icon($file)=="ext"' (sans les '') avant la fin de la parenthèse avec ext, l'extension que l'on veut qui soit listé /********************************/ /* FONCTIONS */ /********************************/ $excludeFiles = array(".", "..", ".htaccess", ""); // Liste des fichiers ignorés dans le listing /** * Récupère récursivement le contenu d'un répertoire * et le retourne sous forme d'array * @param $directory Le répertoire à traiter **/ function recursive_directory_tree($directory = null) { global $excludeFiles; //If $directory is null, set $directory to the current working directory. if ($directory == null) { $directory = getcwd(); } //declare the array to return $return = array(); //Check if the argument specified is an array if (is_dir($directory)) { //Scan the directory and loop through the results foreach(scandir($directory) as $file) { //. = current directory, .. = up one level. We want to ignore both. if ($file[0] == ".") { continue; } //Exclude some specified files if (in_array($file, $excludeFiles)) { continue; } //Check if the current $file is a directory itself. //The appending of $directory is necessary here. if (is_dir($directory."/".$file)) { //Create a new array with an index of the folder name. $return[$directory."/".$file] = recursive_directory_tree($directory."/".$file); } else { //If $file is not a directory, just add it to th return array. $return[] = $directory."/".$file; } } } else { $return[] = $directory; } return $return; } /** * Stock dans un tableau tous les fichiers video présents dans le repertoire mis en pareamètre **/ function liste($dossier) { global $tabTrie; foreach ($dossier as $file) { if ( is_array($file) ) { liste($file); } else { # if(get_file_icon($file)=="mp4" || get_file_icon($file)=="mkv" || get_file_icon($file)=="avi" ) { array_push($tabTrie, $file); } } } } /** * Convertit la taille en Xo * @param $fs La taille à convertir */ function convert_size($fs) { if ($fs >= 1073741824) $fs = round($fs / 1073741824 * 100) / 100 . " Go"; elseif ($fs >= 1048576) $fs = round($fs / 1048576 * 100) / 100 . " Mo"; elseif ($fs >= 1024) $fs = round($fs / 1024 * 100) / 100 . " Ko"; else $fs = $fs . " o"; return $fs; } /** * Retourne l'extention d'un fichier en fonction de son type * @filename Le nom du fichier à considérer */ function get_file_icon($filename) { return pathinfo($filename, PATHINFO_EXTENSION); } /** * Retourne le mime d'un fichier * @filename Le nom du fichier à considérer */ function mime_file($filename) { $finfo = finfo_open(FILEINFO_MIME_TYPE); // Retourne le type mime à la extension mimetype $mime=finfo_file($finfo, $filename); finfo_close($finfo); return $mime; } /********************************/ /* FONCTIONS */ /********************************/ #ISO-8859-1 $entete = '<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <atom:link href="'.$site.'/rss.php" rel="self" type="application/rss+xml" /> <xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /> <title>'.$nomDePage.'</title> <link>'.$site.'</link> <language>fr-FR</language> <description>Liste des nouveaux fichiers</description> '; $pied = '</channel> </rss>'; if(isset ($_GET['dossier'])) $physical_path = $physical_path.'/'.$_GET['dossier']; $current_dir = array(); $tab= array(); $tabSize = array(); $tabTrie= array(); $current_dir = recursive_directory_tree($physical_path); liste($current_dir); foreach ($tabTrie as $key => $fichier) { $time = filemtime($fichier); $actualTime = time(); $date = date("F d Y H:i:s.", filemtime($fichier)); if($fichier != '.' && $fichier != '..' && $fichier != 'index.php') { $tab["$fichier"] = $time; $taille=filesize($fichier); $tabSize["$fichier"] = $taille; } } array_multisort($tab, SORT_DESC, $tabSize); echo $entete; $nombre = 1; foreach ($tab as $fichier => $heure) { $nom = basename($fichier); $extension = get_file_icon($fichier,TRUE); $nom = str_replace(".$extension", "" , $nom); $nom = str_replace(".", " " , $nom); // /********************************/ // /* RENOMMAGE */ // /********************************/ // if(substr_count(strtoupper($nom), strtoupper(" epz")) > 0) // { // $nom = str_replace("epz-", "" , $nom); // } // if(substr_count(strtoupper($nom), strtoupper(" HDTV")) > 0) // { // $nom = strrev($nom); // $nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("VTDH"))+5)); // } // if(substr_count(strtoupper($nom), strtoupper(" PDTV")) > 0) // { // $nom = strrev($nom); // $nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("VTDP"))+5)); // } // if(substr_count(strtoupper($nom), strtoupper(" WEB")) > 0) // { // $nom = strrev($nom); // $nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("BEW"))+4)); // } // if(substr_count(strtoupper($nom), strtoupper(" XVID")) > 0) // { // $nom = strrev($nom); // $nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("DIVX"))+5)); // } // if(substr_count(strtoupper($nom), strtoupper(" LD")) > 0) // { // $nom = strrev($nom); // $nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("DL"))+3)); // } // if(substr_count(strtoupper($nom), strtoupper(" DC")) > 0) // { // $nom = strrev($nom); // $nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("CD"))+3)); // } // if(substr_count(strtoupper($nom), strtoupper(" x264")) > 0) // { // $nom = strrev($nom); // $nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("462x"))+3)); // } // if(substr_count(strtoupper($nom), strtoupper(" bluray")) > 0) // { // $nom = strrev($nom); // $nom = strrev(substr($nom,strpos(strtoupper($nom),strtoupper("yarulb"))+7)); // } // $nom = ucwords(mb_strtolower($nom)); // $nom = str_replace ( "French" , "FRENCH", $nom); // $nom = str_replace ( "Vostfr" , "VOSTFR", $nom); // $nom = str_replace ( "e0" , "E0", $nom); // $nom = str_replace ( "e1" , "E1", $nom); // $nom = str_replace ( "e2" , "E2", $nom); // $nom = $nom." [$extension]"; // /********************************/ // /* RENOMMAGE */ // /********************************/ // if(($actualTime-$heure) > $tempsAttente) // { // if ($nombre <= $max) // { // echo(' // <item> // <title>'.$nom.'</title> // <description>'.$nombre.' | Format : '.$extension.' | Date d\'ajout : '. date("d/m/Y H:i:s", $heure).' | Taille : '.convert_size($tabSize["$fichier"]).'</description> // <pubDate>'.date("D, d M Y H:i:s", $heure).'</pubDate> // <link>'.$site.str_replace($lienInterne, "" ,$fichier).'</link> // <enclosure length="'.$tabSize[$fichier].'" type="'.mime_file($fichier).'" url="'.$site.str_replace($lienInterne, "" ,$fichier).'" /> // </item> // '); // $nombre++; // } // } } echo $pied; ?> -
Salut, j'ai souci pour accéder à mes dossiers locaux (du syno) avec le protocole SMB au travers du VPN, depuis un rasberry pi. j'ai l'impression que tout les paramètres sont OK, la connection VPN est active, et je peux naviguer dans les dossiers avec le protocole Webdav. Le PI, avec OSMC m'affiche "Operation not permitted" quand j'essaye d'accéder au Nas avec le protocole SMB Des suggestions ? Je n'ai plus trop d'idées là 😕 Merci