Je voudrais sauvegarder certaines de mes données très importantes sur une machine distante.
Actuellement, je l'enregistre simplement sur ma machine locale en utilisant cette commande:tar -cvjf ~/backups/Backup.tar.bz2 ~/importantfiles/*
Je préférerais ne pas utiliser une autre commande pour la transférer vers la machine distante, ce qui signifie que je voudrais simplement que cette commande soit mise à niveau afin de pouvoir transférer les données vers la machine distante.
Ceci est conçu pour être dans un script plus tard qui est supposé s'exécuter seul, ce qui signifie que tout type d'entrée utilisateur requise le gâcherait complètement!
Quelque chose comme
tar -cvjf sftp://user:pwassword@host/Backup.tar.bz2 ~/importantfiles/*
tar -cvjf ftp://user:pwassword@host/Backup.tar.bz2 ~/importantfiles/*
serait parfait! (Pas de tuyaux (etc.), juste une commande!)
ssh
accès à cette machine?Réponses:
Pour SSH:
Pour SFTP:
Un autre SFTP:
la source
Tar ne parle pas ftp ou sftp. Ce n'est pas son travail. Vous ne pouvez pas faire cela avec du goudron seul. Utiliser des outils appropriés pour chaque tâche et les combiner avec le shell est la façon normale de faire les choses sur les systèmes Unix.
La solution la plus évidente consiste à créer l'archive localement, puis à la copier sur la machine distante.
Si vous ne voulez pas créer l'archive localement parce que vous n'avez pas assez de place, vous pouvez créer un canal nommé, faire écrire tar à ce canal et trouver un (s) client ftp qui peut lire à partir des tuyaux. Malheureusement, sftp refuse
put
une pipe. Certains clients FTP fonctionnent, par exemple lftp:Saisissez votre mot de passe FTP
~/.netrc
.Alternativement, il existe un moyen de faire enregistrer votre commande tar directement sur le serveur distant, mais vous avez besoin d'une configuration préalable. Montez le serveur distant sur SSHFS ou curlftpfs .
la source