Shell拷贝远程主机文件

本文介绍了一个使用Shell脚本实现从远程服务器自动同步指定目录下所有文件到本地,并在同步完成后从远程服务器删除这些文件的方法。该脚本还记录了所有操作的日志,便于后期跟踪和维护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/sh

################################################################################
######把10.0.64.224主机上/data/sea/upload/底下文件拷贝到10.10.31.79#############
######文件拷贝成功后,把文件从10.0.64.224主机上删除,本地记录操作日志#############
################################################################################


#远程主机地址
remote_ip=10.0.64.224;

#远程主机登录用户
remote_user=root;

#远程主机目录
remote_path="/data/sea/upload";

#本地保存远程拷贝文件目录
#local_path="/usr/data/upload/web_sea";
local_path="/home/web_sea";

#本地日志文件输出目录
log_dir="/home/web_sea";


log_file_date=`date +%F`;

for file in `ssh ${remote_ip} ls ${remote_path}`
do
     scpfile="scp ${remote_user}@${remote_ip}:${remote_path}/${file} ${local_path}/";
     $scpfile;
     log_date=`date +%F" "%T`;
     if [ $? -eq 0 ] ; then
        echo "$log_date debug scp file [$file] is successfully" >> $log_dir/scpdir_access_${log_file_date}.log
        ssh ${remote_ip} rm -rf ${remote_path}/${file}
        if [ $? -eq 0 ] ; then
            echo "$log_date debug delete file [$file] is successfully" >> $log_dir/scpdir_access_${log_file_date}.log
        else
            echo "$log_date error delete file [$file] is failure" >> $log_dir/scpdir_error_${log_file_date}.log
        fi
     else
        echo "$log_date error scp file [$file] is failure" >> $log_dir/scpdir_error_${log_file_date}.log
     fi
done
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值