fcp (ftp copy) - copia um ou mais arquivos via FTP
Publicado por Pedro Robson Leão 23/09/2004
[ Hits: 13.413 ]
O script efetua copia de arquivos entre maquinas da rede similar ao comando rcp e/ou scp, o diferencial eh que o script utiliza o protocolo ftp para realizar esta copia.
O parametros de uso são similares ao do scp.
#!/usr/bin/bash user=; pass=; server=; dst=; dst_name=; debug=; function _ftp() { host=${1}; user=${2}; pass=${3}; method=${4}; src_dir=${5}; src_fil=${6}; dst_dir=${7}; dst_fil=${8}; if [ ${method} == "put" ] ; then LCD=${src_dir}; SRC=${dst_fil} CD=${dst_dir}; else LCD=${dst_dir}; SRC=${src_fil} CD=${src_dir}; fi printf "%s %s - Remote directory now %s " $host $src_fil ${CD}; dbg=; [ ! -z ${debug} ] && dbg="d"; ftp -${dbg}ni ${host} <<EOF user ${user} ${pass} lcd ${LCD} cd ${CD} ${method} ${SRC} by EOF } function isUrl() { echo ${1} | grep : >/dev/null return ${?}; } function parseUser() { if echo ${1} | grep \@ >/dev/null ; then echo ${1/\@*/}; fi } function parseServer() { var=${1/*\@/}; echo ${var/:*/}; } function parseDir() { echo ${1/*:/}; } function usage() { printf "Usage: %s [-d] files [[user]@server]:[dir] \n" $0 exit 2; } [ $# == 0 ] && usage $0; while getopts hd name ; do case $name in d) debug=1;; *) usage $0;; esac done shift $(($OPTIND -1)); i=1; declare -a src; for file in ${*} ; do if [ ${i} -eq ${#} ] ; then dst=${file}; else src[${i}]=${file}; i=$((i+1)); fi done if isUrl ${dst} ; then user=$( parseUser ${dst} ); server=$( parseServer ${dst} ); dst=$( parseDir ${dst} ); if [ ! -d ${dst} ] ; then dst=$( dirname ${dst} ); dst_name=$( basename ${dst} ); fi [ -z "${user}" ] && user=${LOGNAME}; if [ -z "${pass}" ] ; then printf "%s@%s's password: " $user $server; read pass; fi fi method="put"; for ((i=1; i<${#}; i++)) ; do if isUrl ${src[$((i))]} ; then user=$( parseUser ${src[$((i))]} ); server=$( parseServer ${src[$((i))]} ); src[$((i))]=$( parseDir ${src[$((i))]} ); method="get"; [ -z "${user}" ] && user=${LOGNAME}; if [ -z "${pass}" ] ; then printf "%s@%s's password: " $user $server; read pass; fi fi for file in ${src[$((i))]} ; do #set -x _ftp ${server} ${user} ${pass} ${method} $( dirname ${file} ) $( basename ${file} ) ${dst} ${dst_name}; #set +x done done
Firewall com Iptable - rc.Firewall
Detalhes técnicos do processador - CPUINFO
Shell Script / Perl para sincronizar base de usuários do AD com o Zimbra
Backup de arquivos do Linux para um servidor FTP
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - CALCULA O % DE USO DA QUOTA E ATUALIZA BANCO
Nenhum comentário foi encontrado.
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Ubuntu 24 [ Wireless sendo atacada ] (10)
Legenda Automática no Kdenlive (1)