Необходимо создать простой скрипт для входа по ftp

Я планирую сделать простой скрипт для входа в коммутатор и сделать резервную копию конфигурации!

Раньше я входил в систему вручную и хочу сделать это с помощью одной команды или сценария!

Кто-нибудь может мне помочь?

root@xxx:/home# ftp xxx.19.254.61
Connected to xxx.19.254.61.
220 xx-xx-xx-xxx-SW-2 FTP version 1.0 ready at Sat Feb 14 23:28:25 1970
Name (xxx.19.254.61:root): admin
331 Enter PASS command
Password:
230 Logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> get config config.cfg
local: config.cfg remote: config
200 Port command okay
150 Opening data connection for RETR config
226 File sent OK
2824 bytes received in 1.05 secs (2.6227 kB/s)
ftp> bye
221 Goodbye!

person Sazzad Hussein    schedule 08.06.2015    source источник
comment
Посмотрим, сможет ли heredoc вам помочь ...   -  person anishsane    schedule 08.06.2015


Ответы (2)


heredoc вам не подходит?

$ ftp xxx.19.254.61 <<< EOF
get config config.cfg
bye
EOF
person anishsane    schedule 08.06.2015
comment
Спасибо за ответ! Можно ли добавить любой путь назначения? Итак, эти данные конфигурации будут автоматически сохранены там! - person Sazzad Hussein; 08.06.2015
comment
Я не использовал ftp. Я думаю, вам нужно сначала cd или pushd в локальный каталог, прежде чем запускать команду get. - person anishsane; 08.06.2015
comment
Я думаю, что мало что нужно редактировать. Например, нужно добавить строки для имени пользователя, пароля и пути назначения. - person Sazzad Hussein; 08.06.2015

я написал нечто подобное здесь < / а>

ftp_server='localhost'
ftp_username='********'
ftp_password='***********'    
mkdir /home/user/linux/source_folder
source_folder="/home/user/linux/source_folder/"
cp -avr config* $source_folder
dest_folder="/home/user/linux/linux2/"
ftp -i -n $ftp_server <<END_SCRIPT
quote USER $ftp_username
quote PASS $ftp_password
cd $source_folder
!cd $dest_folder
mget -R *
quit
END_SCRIPT

(Примечание: вам следует mkdir, потому что ftp не поддерживает несколько копий файлов из исходной папки в папку назначения, поэтому вы должны использовать mget с параметром -R для нескольких файлов, которые находятся в новом созданном каталоге, а затем скопировать ваши файлы конфигурации в этот новый созданный каталог с помощью cp -avr config* $source_folder).

это еще один более расширенный скрипт, который никто не может видеть ваш сохраненный пароль, разрешено шифрование openssl, дешифрование с парными ключами.

#!/bin/bash
read -p "Enter Username: " Username
read -sp "Enter Username Password: " Password
echo
ftp_server="localhost"
ftp_username="$Username"
ftp_password="$Password"
passwrd=`echo $ftp_password | openssl aes-256-cbc -a -salt`
decrypt=`echo $passwrd | openssl aes-256-cbc -a -d -salt`
mkdir /home/username/linux/source_folder
source_folder="/home/username/source_folder/"
cp -avr config* $source_folder
dest_folder="/home/username/linux/dest_folder/"
ftp -in $ftp_server <<END_SCRIPT
quote USER $ftp_username
quote PASS $decrypt
cd $source_folder
!cd $dest_folder
mget -R *
quit
END_SCRIPT

инструкции:

  • Введите свое настоящее имя пользователя
  • Введите свой реальный пароль
  • Зашифруйте свой закрытый ключ
  • Подтвердите пароль закрытый ключ
  • Последний вход с тем же закрытым ключом

Пример:

  • Sazzad (Имя пользователя)
  • Sazzad (Настоящий пароль)
  • P @ $$ w0rd (пароль_to_encrypt (закрытый ключ))

  • P @ $$ w0rd тот же пароль_to_encrypt (закрытый ключ)

  • P @ $$ w0rd тот же пароль_to_decrypt (закрытый ключ)

Примечание.

вы можете удалить эти строки, если не хотите, чтобы шифрование парного ключа с подключением openssl

passwrd = echo $ftp_password | openssl aes-256-cbc -a -salt

дешифровать = echo $passwrd | openssl aes-256-cbc -a -d -salt

и измените quote PASS $decrypt на quote PASS $ftp_password

Альтернатива: просто поставьте свои Username, Password и Server Ip лайки 172.19.254.61

#!/bin/bash
read -p "Enter Username: " Username
read -sp "Enter Username Password: " Password
echo
read -p "FTP Server IP: " ftp_server
ftp_username=$Username
ftp_password=$Password
source_folder="/home/rr-de-nms-1/Sazzad/source_folder/"
cp -avr /home/rr-de-nms-1/Sazzad/config* $source_folder
dest_folder="/home/rr-de-nms-1/Sazzad/dest_folder/"
ftp -in $ftp_server <<END_SCRIPT
quote USER $ftp_username
quote PASS $decrypt
cd $source_folder
!cd $dest_folder
mget -R *
quit
END_SCRIPT

Теперь ваши файлы конфигурации загружены здесь, в /home/rr-de-nms-1/Sazzad/dest_folder/

person auth private    schedule 08.06.2015
comment
Спасибо за ответ. Но не могли бы вы добавить в свой скрипт команду входа в систему Switch? Было бы лучше, если бы я понял. - person Sazzad Hussein; 10.06.2015
comment
@SazzadHussein снова проверь последний скрипт, братан - person auth private; 12.06.2015
comment
Большое спасибо за ваши усилия и извините за мой поздний ответ. Я только что попробовал ваш скрипт без шифрования. root @ xxxx: / home / sabuj # ./test1.sh Введите имя пользователя: admin Введите пароль для имени пользователя: cp: cannot stat â € ˜config * â € ™: Нет такого файла или каталога Пользователь не может войти в систему. Нет управляющего соединения для команды : Неверный файловый дескриптор - person Sazzad Hussein; 12.06.2015
comment
Я отредактировал ваш сценарий следующим образом: #! / Bin / bash read -p Введите имя пользователя: admin read -sp Введите пароль пользователя: xxxxx echo ftp_server = 172.19.xxx.xx ftp_username = $ Имя пользователя ftp_password = $ Password passwrd = echo $ftp_password decrypt=echo $ passwrd mkdir / home / sabuj / source_folder source_folder = / home / sabuj / source_folder cp -avr config * $ source_folder dest_folder = / home / sabuj / dest_folder / ftp -in $ ftp_server ‹< END_SCRIPT quote $ USER $ ftp_username quote PASS $ ftp ! cd $ dest_folder mget -R * выйти END_SCRIPT - person Sazzad Hussein; 12.06.2015
comment
@SazzadHussein нет такого файла или каталога, потому что вы не указали расположение файлов конфигурации, например, если ваши файлы конфигурации находятся внутри вашего домашнего каталога в этом случае cp -avr /home/Sazzad/config $source_folder. - person auth private; 12.06.2015
comment
@SazzadHussein Проверьте мой ответ еще раз, братан. Альтернативный вариант ничего не редактируйте, и он должен работать. Пожалуйста, оставьте отзыв, пожалуйста, братан. - person auth private; 15.06.2015
comment
Я обновил журнал здесь. Как вы думаете, конфигурационный файл в порядке? Большое спасибо, братан, за сотрудничество! drive.google.com/file/d/0B9ooCAjhwTkXZd3/File/d/0B9ooCAjhwTkXZd3/RpXRpXWTkXZd3/ - person Sazzad Hussein; 16.06.2015
comment
@SazzadHussein, привет, брат, пожалуйста, измените эту строку read -p "172.19.254.61" ftp_server на ftp_server="172.19.254.61" и разрешите домашнему каталогу ftp на selinux, попробуйте setsebool ftp_home_dir 1 разрешить доступ к вашему ftp-серверу, потому что вы не сможете получить доступ к ftp, если selinux включен, или enforced сообщите мне и не стесняйтесь чтобы спросить больше, добро пожаловать. - person auth private; 16.06.2015
comment
братан, пожалуйста, взгляни на мой статус setsebool. Я думаю, это уже разрешено ... Нажмите на ту же ссылку, чтобы просмотреть обновленный журнал. - person Sazzad Hussein; 16.06.2015
comment
@SazzadHussein: да, он в разрешающем режиме, но вы должны перезапустить, чтобы эффект вступил в силу, пожалуйста, введите getsebool -a | grep ftp, затем проверьте, что ftp_home_dir включен или выключен? - person auth private; 17.06.2015