fcp (ftp copy) - copia um ou mais arquivos via FTP
Publicado por Pedro Robson Leão 23/09/2004
[ Hits: 13.352 ]
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
Auto-installer ISP Config 3 - FC 11
Remover kernels antigos com zenity
Retra de iptables para DMZ na porta 80
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Arch Linux - Guia para Iniciantes (2)
Problemas ao instalar o PHP (11)
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)