当前位置:首页 » 编程软件 » 文件同步脚本

文件同步脚本

发布时间: 2022-07-11 16:02:59

A. 两台linux主机之间 文件同步 shell脚本

如果是Ubuntu系统并且电脑都联网,那么很easy:
通过云存储技术,Ubuntu One可以让用户在不同电脑间同步和共享文件。

最新版的Ubuntu 12.10中的Ubuntu One 提供了Ubuntu One文件夹存在于用户目录下,向此文件夹添加、更新或者删除操作会实时的同步服务器,使用和操作本地文件没什么区别。
并且UbuntuOne已经有了windows客户端。

B. 求助: linux下怎么实现两个文件夹的同步(shell脚本)

提供一个思路给你
源文件夹和目标文件夹,通过ls -R -1
生成一个文件列表。
然后逐个进行对比
如果不同,则从源文件夹进行复制

其实双向同步是比较麻烦的。因为如果一旦两个文件夹的同一个文件都被修改了,那么就会出现冲突。
用脚本写,很麻烦...

最好的方法,是搞一个git或者svn一类的版本管理。

C. 求beyond compare文件内容同步比较脚本

有人解决没有?

D. 如何使2台Linux服务器通过ftp自动同步文件(用Shell脚本)

楼上正解。

E. 这个自动同步文件的批处理命令怎么写

@echooff&title文件备份及比对工具By依梦琴瑶
::设置A目录路径
setA=E:同步

::设置B目录路径
setB=S:同步

::设置C目录路径
setC=E:冗余

echo说明:
echo此工具在比对移动时,遇见同名文件,会在新文件名字后加上_yyyymmddhhmmss
echo格式的年月日时分秒。本工具同时会比对文件夹,重命名格式同文件一样。
echo,
echo日志文件命名方式为yyyymmddhhmmss.txt格式的年月日时分秒.txt。
echo日志内容中-^>前面的为原始文件路径,后面的为最终位置的路径。
echo,&echo,

Call:GetABFullPath"%A%""%B%""%C%"
ifexist"%SystemRoot%System32choice.exe"gotoc2
echo,&set/pchoice=请按Y键开始备份,按其它任意键(包括回车键)退出,回车确认:
if/i"%choice%"=="Y"gotostart
exit

:c2
echo,&choice/cYN/n/m"按Y键开始备份,按N键退出:"
iferrorlevel2exit
iferrorlevel1gotostart
exit

:start
setYMD=%date:~,10%
setYMD=%YMD:/=%
setYMD=%YMD:-=%
setHMS=%time:~,8%
setHMS=%HMS:=0%
setHMS=%HMS::=%

echo,&echo正在备份中,请耐心等待。。。
(echo从"%B%"备份到"%A%"中的文件/文件夹:
echo,
x/s/e/y/d/h/f"%B%""%A%")>"%C%\%YMD%%HMS%.txt"
ping127.0.1-n"2">nul
echo,&echo正在比对中,请耐心等待。。。
(echo,&echo,&echo,
echo从"%A%"移动到"%C%"中的文件/文件夹:
echo,
for/f"delims="%%ain('dir/s/b"%A%"')do(
set"str=%%~a"
ifnotexist"!str:%A%=%B%!"(
dir/ad"!str!">nul2>nul&&(
ifexist"!str:%A%=%C%!"set"Ext=_%YMD%%HMS%"
echo"!str!"-^>"!str:%A%=%C%!!Ext!"//文件夹
rd/s/q"!str!"2>nul
md"!str:%A%=%C%!!Ext!"2>nul
)||(
ifexist"!str:%A%=%C%!"set"Ext=_%YMD%%HMS%"
ifdefinedExt(
set"strtmp=%%~dpa"
echo"!str!"-^>"!strtmp:%A%=%C%!%%~na!Ext!%%~xa"
move"!str!""!strtmp:%A%=%C%!%%~na!Ext!%%~xa">nul
)else(
set"strtmp=%%~dpa"
echo"!str!"-^>"!str:%A%=%C%!"
x/s/e/y"!str!""!strtmp:%A%=%C%!">nul
del/f/q"!str!"2>nul
)
)
set"Ext="
set"strtmp="
)
))>>"%C%\%YMD%%HMS%.txt"
echo,&echo此次操作已完成,请按任意键退出。
@pause>nul&exit

:GetABFullPath
set"A=%~f1"
set"B=%~f2"
set"C=%~f3"
goto:eof



我的脚本可能不是最完美的,但应该算符合你的基本要求了!希望你喜欢,谢谢!

F. 如何使用七牛python SDK写一个同步脚本及使

七牛云存储的 Python 语言版本 SDK(本文以下称 Python-SDK)是对七牛云存储API协议的一层封装,以提供一套对于 Python 开发者而言简单易用的开发工具。Python 开发者在对接 Python-SDK 时无需理解七牛云存储 API 协议的细节,原则上也不需要对 HTTP 协议和原理做非常深入的了解,但如果拥有基础的 HTTP 知识,对于出错场景的处理可以更加高效。

最近刚搭了个markdown静态博客,想把图片放到云存储中。

经过调研觉得七牛可以满足我个人的需求,就选它了。

要引用图片就要先将图片上传到云上。

虽然七牛网站后台可以上传文件,但每次上传都需要先登录,然后选择图片,设置连接地址,才能上传。

这个过程有些繁琐,所以我便想用七牛云提供的SDK写个一同步工具,方便增量同步文件。

有了这个想法,就马上行动。花了大概一个上午的时间,总算把这个工具给写出来,并放到GitOSC和github上。

?

#!/usr/bin/env python#-*- coding:utf-8 -*-## AUTHOR = "heqingpan"# AUTHOR_EMAIL = "[email protected]"# URL = "http://git.oschina.net/hqp/qiniu_sync"import qiniufrom qiniu import Authfrom qiniu import BucketManagerimport osimport reaccess_key = ''secret_key = ''bucket_name = ''bucket_domain = ''q = Auth(access_key, secret_key)bucket = BucketManager(q)basedir=os.path.realpath(os.path.dirname(__file__))filename=__file__ignore_paths=[filename,"{0}c".format(filename)]ignore_names=[".DS_Store",".git",".gitignore"]charset="utf8"diff_time=2*60def list_all(bucket_name, bucket=None, prefix="", limit=100):rlist=[]if bucket is None:bucket = BucketManager(q)marker = Noneeof = Falsewhile eof is False:ret, eof, info = bucket.list(bucket_name, prefix=prefix, marker=marker, limit=limit)marker = ret.get('marker', None)for item in ret['items']:rlist.append(item["key"])if eof is not True:# 错误处理#print "error"passreturn rlistdef get_files(basedir="",fix="",rlist=None,ignore_paths=[],ignore_names=[]):if rlist is None:rlist=[]for subfile in os.listdir(basedir):temp_path=os.path.join(basedir,subfile)tp=os.path.join(fix,subfile)if tp in ignore_names:continueif tp in ignore_paths:continueif os.path.isfile(temp_path):rlist.append(tp)elif os.path.isdir(temp_path):get_files(temp_path,tp,rlist,ignore_paths,ignore_names)return rlistdef get_valid_key_files(subdir=""):basedir=subdir or basedirfiles = get_files(basedir=basedir,ignore_paths=ignore_paths,ignore_names=ignore_names)return map(lambda f:(f.replace("\","/"),f),files)def sync():qn_keys=list_all(bucket_name,bucket)qn_set=set(qn_keys)l_key_files=get_valid_key_files(basedir)k2f={}update_keys=[]u_count=500u_index=0for k,f in l_key_files:k2f[k]=fstr_k=kif isinstance(k,str):k=k.decode(charset)if k in qn_set:update_keys.append(str_k)u_index+=1if u_index > u_count:u_index-=u_countupdate_file(k2f,update_keys)update_keys=[]else:# uploapload_file(k,os.path.join(basedir,f))if update_keys:update_file(k2f,update_keys)print "sync end"def update_file(k2f,ulist):ops=qiniu.build_batch_stat(bucket_name,ulist)rets,infos = bucket.batch(ops)for i in xrange(len(ulist)):k=ulist[i]f=k2f.get(k)ret=rets[i]["data"]size=ret.get("fsize",None)put_time = int(ret.get("putTime")/10000000)local_size=os.path.getsize(f)local_time=int(os.path.getatime(f))if local_size==size:continueif put_time >= local_time - diff_time:# is newcontinue# updateupload_file(k,os.path.join(basedir,f))def upload_file(key,localfile):print "upload_file:"print keytoken = q.upload_token(bucket_name, key)mime_type = get_mime_type(localfile)params = {'x:a': 'a'}progress_handler = lambda progress, total: progressret, info = qiniu.put_file(token, key, localfile, params, mime_type, progress_handler=progress_handler)def get_mime_type(path):mime_type = "text/plain"return mime_typedef main():sync()if __name__=="__main__":main()

这个同步脚本支持批量比较文件,差异增量更新、批量更新。

使用方式

安装七牛Python SDK

?

1pip install qiniu

填写脚本文件(qiniusync.py)的配置信息

?

123access_key = ''secret_key = ''bucket_name = ''

注册后可以拿到对应的信息

将脚本文件(qiniusync.py)拷贝到待同步根目录

运行脚本

?

1python qiniusync.py

后记

写完提交之后才发现,七牛已经提供相应的工具,我这个算是重复造轮子吧。

既然已经写,就发出来,当做熟悉一下七牛的SDK也不错,说不定以后还能用的上。

七牛云存储Python SDK使用教程

本教程旨在介绍如何使用七牛的Python SDK来快速地进行文件上传,下载,处理,管理等工作。

安装

首先,要使用Python的SDK必须要先安装。七牛的Python SDK是开源的,托管在Github上面,项目地址为https://github.com/qiniu/python-sdk。

安装的方式可以如项目的说明上所说,用 pip install qiniu 。当然也可以直接 clone 一份源代码下来直接使用。我一般喜欢直接 clone 源代码,这样的话,如果要对SDK做一些改动也是十分容易的。

最新版本的Python SDK需要依赖 requests 库,所以要提前安装好。安装方式当然也可以用 pip install requests 。

开发环境

Python的开发环境有很多种选择,如果喜欢文本的方式,比如vim,emacs,sublime text等都是很好的选择,如果你喜欢IDE,那么最流行的莫过于 PyCharm 了。 PyCharm 的最新版本到这里下载。

Access Key和Secret Key

我们知道七牛云存储的权限校验机制基于一对密钥,分别称为 Access Key 和 Secret Key 。其中 Access Key 是公钥, Secret Key 是私钥。这一对密钥可以从七牛的后台获取。

小试牛刀

好了,做了上面的这些准备工作,我们就去上传一个简单的文件,练练手。

?

1234python#coding=utf-8__author__ = 'jemy''''

本例演示了一个简单的文件上传。

这个例子里面,sdk根据文件的大小选择是Form方式上传还是分片上传。

?

'''import qiniuaccessKey = "<Your Access Key>"secretKey = "<Your Secret Key>"#解析结果def parseRet(retData, respInfo):if retData != None:print("Upload file success!")print("Hash: " + retData["hash"])print("Key: " + retData["key"])#检查扩展参数for k, v in retData.items():if k[:2] == "x:":print(k + ":" + v)#检查其他参数for k, v in retData.items():if k[:2] == "x:" or k == "hash" or k == "key":continueelse:print(k + ":" + str(v))else:print("Upload file failed!")print("Error: " + respInfo.text_body)#无key上传,http请求中不指定key参数def upload_without_key(bucket, filePath):#生成上传凭证auth = qiniu.Auth(accessKey, secretKey)upToken = auth.upload_token(bucket, key=None)#上传文件retData, respInfo = qiniu.put_file(upToken, None, filePath)#解析结果parseRet(retData, respInfo)def main():bucket = "if-pbl"filePath = "/Users/jemy/Documents/jemy.png"upload_without_key(bucket, filePath)if __name__ == "__main__":main()

运行结果为:

Upload file success!
Hash: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8
Key: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8

从上面我们可以看到,使用七牛的Python SDK上传文件的最基本的步骤是:

1.生成上传凭证

2.上传文件

3.解析回复结果

G. 需要一个shell脚本,同步两台局域网内机器的文件,谢谢了

#!/bin/sh

IP_ADDR=192.168.1.146
cd /var/www/a #进入本机的目录
ftp -i -n $IP_ADDR <<EOF
user aaaaa mmm#用户aaaaa,密码为mmm
prmopt
cd /user/local/http/htdocs
mget *
EOF

#这段代码再重复两遍就行了,其中第三行中的目录分别换成/b和/c
#然后用crontab 脚本名称 就行了

H. 文件自动同步的bat脚本怎么写

需要用软件实时的同步。很多同步软件可以做到。如果使用bat,需要设置该bat定时运行,运行时才同步。

热点内容
外交官拉杆箱怎么设密码 发布:2025-02-08 21:21:55 浏览:797
vivo手机z系列哪个配置性价比最高 发布:2025-02-08 21:17:43 浏览:10
什么是白标和服务器 发布:2025-02-08 21:15:50 浏览:481
租完服务器怎么搭建ip 发布:2025-02-08 21:11:47 浏览:394
c语言赋值后 发布:2025-02-08 21:08:40 浏览:756
dosphp 发布:2025-02-08 21:01:27 浏览:703
sm3杂凑算法 发布:2025-02-08 20:55:00 浏览:286
抽奖源码带后台 发布:2025-02-08 20:33:54 浏览:226
欧博中央空调原始密码是多少 发布:2025-02-08 20:33:47 浏览:336
运动使人快乐缓解压力 发布:2025-02-08 20:27:01 浏览:99