GNU/Linux >> Znalost Linux >  >> Linux

Jak automatizovat přenosy souborů sftp pomocí nástroje expect

Vždy můžete nakonfigurovat ssh bez hesla, abyste mohli přenášet soubory pomocí sftp, aniž by byl uživatel požádán o heslo. Ale pokud není povoleno konfigurovat ssh bez hesla, existuje způsob, jak automatizovat přenosy souborů sftp. Toho lze dosáhnout pomocí ‘očekávat ‘ příkaz poskytovaný shellem tcl.

Aby nástroj očekávání fungoval, musíme nainstalovat balíček „expect“. K tomu použijte níže uvedený příkaz:

# yum install expect

Níže je uveden příklad skriptu, který automatizuje vzdálený přístup pomocí dávkového souboru.

#!/bin/bash

if (( $# < 3 )); then
    echo "Usage: $0 [remote addr] [password] [batch file]"
    echo
    echo -e "tremote addr : [loginid]:[host addr]n"
    exit
fi

REMOTE=$1
PASS=$2
BATCH=$3
expect -c "
spawn sftp -o "batchmode no" -b "$BATCH" $REMOTE
expect -nocase "password:" {send "$PASSr"; interact}
"

Tady,

spawn - to initiate the sftp process
expect - it expects a particular string ( here it is "password:" prompt )
send - sends the password when the expect utility gets the required prompt.

Zde je příklad, jak spustit skript, který spustí příkazy v testjob.bat na remote.example.com po přihlášení jako root s heslem 'password'

# bash ./test.sh [email protected] password testjob.bat


Linux
  1. Jak vytvořit soubor ZIP chráněný heslem v systému Linux

  2. Jak se připojit k SFTP pomocí FileZilla pro bezpečný přenos souborů

  3. Jak podložit soubor pomocí FF pomocí dd?

  1. Jak převést PPK na soubor PEM pomocí příkazu

  2. Jak otevřít soubor ve vim pomocí pipe

  3. Jak odstranit soubor bez použití rm?

  1. Jak prolomit zip heslo na Kali Linux

  2. Jak rozšířit odkládací prostor pomocí odkládacího souboru v Linuxu

  3. Jak změnit kódování, které používá můj SFTP server?