Aller au contenu

Exécuter sur le NAS une tâche lancée à distance par CRON

Featured Replies

Posté(e)

Bonjour,

Je suis nouveau dans le monde Synology et les recherches que j'ai effectuées jusqu'ici ne m'ont pas permis de trouver une solution au problème suivant,.

Quand je lance depuis un terminal de mon PC cette commande : $ ssh root@192.168.1.28 'sh touch myfile_$(date +%T)'

elle me crée un fichier sous le répertoire /root du NAS.

En revanche, quand je crée cette ligne dans le fichier anacrontab de mon PC :

1 1 tt-news ssh -t root@192.168.1.28 'sh touch myfile +%T)'

Son exécution ne crée aucun nouveau fichier.

 

Toute suggestion est la bienvenue.

 

 

Posté(e)

Enlève le -t, précise le path complet de ton fichier et mets le tout dans un script (avec les variables d'env nécessaires) mais surtout en indiquant la clef à utiliser.

Ajoute un peu de debug dans le script et dans ta crontab, redirige la sortie vers un fichier de logs

Modifié par Fenrir

Posté(e)
  • Auteur

Bonjour Fenrir,

 

J'ai écrit ce script, aussi court que mes connaissances sont limitées :

#! /bin/sh
ssh -v root@192.168.1.28 touch /volume1/Documents/myfile_$(date +%T) > /volume1/Documents/myout

 

et j'ai modifié l'anacrontab comme ceci :

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root

# These replace cron's entries
#1	5	cron.daily	run-parts --report /etc/cron.daily
#7	10	cron.weekly	run-parts --report /etc/cron.weekly
#@monthly	15	cron.monthly	run-parts --report /etc/cron.monthly
1  1  pwtch2  /usr/local/bin/touchmyfile.sh > /home/tt/Reports/touch2

 

Je ne précise pas de clé car j'ai installé des clés RSA reconnues entre le NAS et mon PC.

Quand je lance le job, il ne crée rien sur le NAS tandis que sur le PC, il crée un fichier touch2 qui ne contient rien.

Posté(e)
#!/bin/bash

REMOTEsrv='serveur distant'
REMOTElogin='login distant'
REMOTEpath='/chemin/vers/le/dossier'

ssh $REMOTElogin@$REMOTEsrv "date >> $REMOTEpath/test"

--------------

*      *       *       *       *       /chemin/vers/le/scripts.sh >> /var/log/crontab.perso 2>&1

Modifié par Fenrir

Posté(e)
  • Auteur

Merci de ta réponse. Voici comment j'ai appliqué tes conseils.

Mon script /home/tt/Programmation/testeNAS.sh :

#!/bin/bash

REMOTEsrv=192.168.1.28
REMOTElogin=root
REMOTEpath=/volume1/Data

ssh $REMOTElogin@$REMOTEsrv "date >> $REMOTEpath/test"

 

Ma crontab :

$ crontab -l
* 6-9 * * 7 MX-weekly-BU.sh # JOB_ID_1
*  *  *  *  *  /home/tt/Programmation/testeNAS.sh >> /var/log/crontab.perso 2>&1

Sur mon PC, il n'existe pas de fichier crontab.perso

Sur le NAS : il n'y rien de créé (voir P.J.)

 

Capture d’écran PuTTY.png

Posté(e)
à l’instant, grd974 a dit :

Sur mon PC, il n'existe pas de fichier crontab.perso

Le compte utilisé dans la crontab n'a pas le droits d'écrire dans /var/log, change le dossier (/tmp par exemple)

il y a 1 minute, grd974 a dit :

Sur le NAS : il n'y rien de créé (voir P.J.)

le dossier test doit exister sur la nas

Posté(e)
  • Auteur

Au début, dans crontab.perso, j'avais un message du genre "test is a Directory".

Dans le script, j'ai alors remplacé "$REMOTEpath/test" par "$REMOTEpath/test/essai" et, maintenant, à chaque exécution du cron job, la date s'inscrit dans le fichier essai sur le NAS.

Fenrir, tu m'as permis de sortir d'une galère de plusieurs semaines durant lesquelles j'avais cherché partout en vain.

Merci.

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

Qui est en ligne (Afficher la liste complète)

  • Il n’y a aucun utilisateur enregistré actuellement en ligne

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Account

Navigation

Rechercher

Rechercher

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.