Mein kleines Backup-Skript verwendet ssh, um Backup aus Temp-Ordner zu verschieben. Wie folgt aus:Skript mit ssh und mv Befehle funktioniert nicht
... && ssh [email protected] "mv /path/to/temp/folder /another/path"
aber nachdem es ausführen sagt, dass
mv: can't rename /path/to/temp/folder: No such file or directory
Ich habe versucht, diesen Befehl direkt im Terminal zu wiederholen - das gleiche Ergebnis. Was ist interessant?
ssh [email protected] "ls /path/to/temp/folder/"
funktioniert gut. Und wenn ich mich zuerst auf dem Remote-Server anmelde und erst dann mv
ausführe, funktioniert es auch. Ordner auf dem Server vorhanden, SSH-Benutzer hat Berechtigungen, um darauf zu schreiben, aber wenn ich ssh
und mv
Befehle kombinieren - es funktioniert nicht. Was fehlt mir?
Client ist Solaris-basiert, Server ist Debian-basiert.
EDIT: hier ist voll Skript
#!/bin/sh
date=`date "+%Y%m%d-%H%M%S"`
BKP=/Core/
rsync -azP \
--link-dest=../current \
--exclude-from=$HOME/.rsync/exclude \
$BKP [email protected]:/shares/Backups/Saturn/incomplete_backup-$date \
&& ssh [email protected] \
"mv /shares/Backups/Saturn/incomplete_backup-$date /share/Backups/Saturn/$date \
&& rm -f /shares/Backups/Saturn/current \
&& ln -s $date /shares/Backups/Saturn/current"
rsync Teil funktioniert wie ein Charme, aber mv Befehl - nicht.
P.S. Ich weiß, dass die Protokollierung als root eine schlechte Idee ist, aber Server ist WD NAS, und es erlaubt standardmäßig nur Root-Zugriff. Ich bin noch nicht fertig mit dem Tuning, so dass selbst die Autorisierung mit öffentlichen Schlüsseln nicht über Neustarts hinaus besteht. Aber es ist eine andere Geschichte.
Können Sie die vollständigen Pfade von Ziel und Quelle posten? – SilentMonk
Haben Sie Root-Zugriff auf dem Remote-Server? –
Ihre Namenskonvention bedeutet, dass es sich um eine temporäre Datei handelt. Sind Sie sicher, dass die Datei die ganze Zeit da ist? Wie in: Die temporäre Datei wird regelmäßig von einem anderen Skript auf dem Server erstellt (und regelmäßig gelöscht). – grochmal