У меня есть около тонны скриптов, использующих следующую функцию:
# Copies files over using FTP.
# Configurations set at the beggining of the script
# @param $1 = FTP Host
# $2 = FTP User
# $3 = FTP User password
# $4 = Source file name
# $5 = destination directory
# $6 = local directory
doftp() {
log_message_file "INFO" "Starting FTP"
ftp_hst=$1
ftp_usr=$2
ftp_pwd=$3
sourcefile=$4
destdir=$5
locdir=$6
ftp -nv $FTPH << EOF 2> ftp.err.$$
quote USER $ftp_usr
quote PASS $ftp_pwd
cd $destdir
lcd $locdir
bin
put $sourcefile
bye
EOF
if [ "$(wc ftp.err.$$|cut -d" " -f8)" != 0 ] ; then
log_message_file "ERROR" "Problem uploading files: $(cat ftp.err.$$)"
else
log_message_file "INFO" "FTP finished"
fi
rm ftp.err.$$
}
Работает, работает, если не работает ftp.К счастью для меня, сценарии довольно точны, и FTP почти никогда не выходит из строя.Но это один из тех редких моментов, когда у вас есть возможность (время) вернуться назад и просмотреть код, отмеченный в списке TODO.Единственная проблема заключается в том, что я не слишком уверен, как ее улучшить ... Я бы взял вам рекомендации, что там изменить.
Одной из очевидных проблем является ошибка парсинга с ftp, котораясовершенно хромойНо я также подумаю над другими частями функции:)
Стоит ли упоминать, что это выполняется на сервере AIX?О, и нет, я не могу использовать SFTP: (
Спасибо за любой ввод!
пс .: log_message_file - это просто базовое ведение журнала ... не влияет на функцию.