fcp (ftp copy) - copia um ou mais arquivos via FTP
Publicado por Pedro Robson Leão 23/09/2004
[ Hits: 13.517 ]
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
Baixando fotos de uma câmera digital pela USB
Bash script para converter decimal para hexadecimal mole!
Restaurar backup de uma conta cpanel mesmo que ela já exista
Nenhum coment�rio foi encontrado.
O que é o THP na configuração de RAM do Linux e quando desabilitá-lo
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Como unir duas coleções de ROMs preservando as versões traduzidas (sem duplicatas)
Como instalar o Telegram Desktop no Ubuntu 24.04
Overclocking Permanente para Drastic no Miyoo Mini Plus
Problemas de chaves (/usr/share/keyrings) no Debian
Converter os repositórios Debian para o novo formato com as chaves
Isso acontece com vcs também? (1)
Problema com audio apos upgrade (9)
Instalação automatizada do Debian 12 em UEFI (2)