Ich bin auf der Suche nach etwas wissen, warum meine Verwendung von Cron fehlschlägt, wenn Sie Rsync verwenden, um Dateien vom Remote-Server auf den lokalen Pfad zu übertragen.Wie cron und rsync zu verwenden, um Dateien von Remote-Server auf lokalen Pfad zu übertragen
Mein Ziel ist es, eine geplante Cron-Job laufen zu einer bestimmten Zeit zu haben und erfolgreich mein Transfer Skript
Aus zahlreichen Google-Suchanfragen ausführen ich zusammen den folgenden Befehl rsync:
rsync --protect-args --remove-source-files --chmod=Du=rw,Dgo=rw,Fu=rw,Fog=r -apvzrc [email protected]:/media/pi/USBSTORAGE32/ /media/Data_1/"James' Files"/
I gesetzt haben up the remote server, so dass er nicht nach einem Passwort fragt, indem er ssh-keygen rsa verwendet, um einen öffentlichen Schlüssel zu generieren, der in einer autorized_keys-Datei gespeichert ist. Ich logge mich mit SSH in den lokalen Rechner ein und gebe den Befehl ein, um die Dateien vom entfernten Server zum lokalen Rechner zu ziehen.
Sobald ich den rsync-Befehl oben getestet hatte, dachte ich, ich hätte es genagelt, also popped das in ein Skript, das dann cron über crontab hinzufügte. My added Zeilen wie folgt aussehen
55 * * * * sudo /home/jlivin25/bin/myscripts/sync.sh > /var/log/james/cronsync.log 2>&1
Und mein Skript sieht wie folgt aus:
#!/usr/bin/env bash
rsync --protect-args --remove-source-files --chmod=Du=rw,Dgo=rw,Fu=rw,Fog=r -apvzrc [email protected]:/media/pi/USBSTORAGE32/ /media/Data_1/"James' Files"/
Die geplante Aufgabe nicht wie erwartet läuft, cron Trys um das Skript auszuführen, aber die folgende Fehlermeldung wird protokolliert, in meine Log-Datei:
sudo: no tty present and no askpass program specified
Und sein an dieser Stelle, dass ich bin stecken, weil durch ‚googeln‘ die obige Meldung bekomme ich viele Gründe unterscheiden, was ich getan habe, funktioniert nicht. Ich bin nicht sicher, wohin der Fehler zu verfolgen ist, ist das Problem mit meiner Verwendung von Cron, SSH oder Rsync.
Jede Hilfe wäre willkommen.
littlejeem
Nähte haben Sie etwas, das Ihr Terminal benötigt. Vielleicht Ihr ssh Agent – quazardous
Versuchen Sie in der/etc/cron.d oder direkt mit der Crontab -e von Ihrem Root-Benutzer zu vermeiden, zu sudo – quazardous
Hey @quazardous, ich hatte nicht daran gedacht (Crontab der Wurzel) Ich werde es geben und melden Sie zurück. Danke für die schnelle Antwort. – Littlejeem