fcp (ftp copy) - copia um ou mais arquivos via FTP
Publicado por Pedro Robson Leão 23/09/2004
[ Hits: 13.498 ]
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
Adicionando novo usuário manualmente
Script de iniclização do Exim para Funcionamento com MailScanner
Backup com dump, restore, sendmail e log completo
Invertendo strings usando vetores
Nenhum coment�rio foi encontrado.
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Dica para encontrar diversos jogos Indies criativos
Instalando Discord no Debian 13
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Dificuldade com Ocs 2.12.3 no Debian 13 com Apache2 - Can't load ... (4)
paginação dos favoritos não funciona no vivaolinux[BU... (4)