97 votes

Automatiser le transfert de fichiers scp en utilisant un shell script.

J'ai un nombre n de fichiers dans un répertoire sur mon système unix. Y a-t-il un moyen d'écrire un shellscript qui transférera tous ces fichiers via scp vers un système distant spécifié. Je spécifierai le mot de passe dans le script, afin de ne pas avoir à le saisir pour chaque fichier.

2voto

Rishi Sinha Points 11

Ça va marcher :

#!/usr/bin/expect -f

spawn scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no file1 file2 file3 user@host:/path/
expect "password:"
send "xyz123\r"
expect "*\r"
expect "\r"
interact

1voto

azazil Points 21

Essayez lftp

lftp -u $user,$pass sftp://$host << --EOF--

cd $directory

put $srcfile

quit

--EOF--

1voto

Chief_Arbiter Points 19

Voici un code bash pour SCP avec un fichier clé .pem. Il suffit de le sauvegarder dans un fichier script.sh puis de l'exécuter avec 'sh script.sh'.

Profitez de

#!/bin/bash
#Error function
function die(){
echo "$1"
exit 1
}

Host=ec2-53-298-45-63.us-west-1.compute.amazonaws.com
User=ubuntu
#Directory at sent destination
SendDirectory=scp
#File to send at host
FileName=filetosend.txt
#Key file
Key=MyKeyFile.pem

echo "Aperture in Process...";

#The code that will send your file scp
scp -i $Key $FileName $User@$Host:$SendDirectory || \
die "@@@@@@@Houston we have problem"

echo "########Aperture Complete#########";

-1voto

Dimitri Points 2261

La commande scp peut être utilisé comme un système UNIX traditionnel cp . Donc, si vous le faites :

scp -r myDirectory/ mylogin@host:TargetDirectory

fonctionnera

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X