×

ftp自动同步方案

hqy hqy 发表于2024-12-24 11:02:28 浏览24 评论0

抢沙发发表评论

目录

需求:

自建了一个ftp服务器, 要求从开发的机器定期同步某个目录的文件到ftp


1.windows%E6%9C%BA%E5%99%A8&zhida_source=entity" target="_blank" style="text-decoration-line: none; color: rgb(9, 64, 142); cursor: pointer;">windows机器

0.freeFileSync

可以用 那个另存为图标 ,将同步的功能 转成一个脚本存起来

然后用windows的 taskschd.msc 的计划任务,定时运行脚本

就可以定时目录同步到ftp

1.其他方案

winscp一直挂在机器上就可以了

按ctrl + U,开启同步监控



1.5 windows的bat脚本方案


https://github.com/wenyangke/bat/blob/master/autoCatch.bat


chcp 65001@echo off 
%1 %2
ver|find "5.">nul&&goto :Admin
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas",1)(window.close)&goto :eof
:Admin

setlocal enabledelayedexpansion

::上传到ftp服务器目标路径set newmac=6C-2B-59-54-D2-4E
::设置指定目录,多个目录用英文逗号隔开,如果路径中有空格,请给该路径加上英文双引号 
set dire=C:\ftpMonitoring
::设置指定上传文件后缀名,多个后缀用英文逗号隔开,同样有空格的要用英文双引号括起来set ext=*.doc,*.docx,*.jpg,*png,*.pdf
::ftp上传失败出现的代码set failCode="421 425 426 450 451 452 500 501 502 503 504 530 532 550 551 552 553"set ftpulr=172.16.121.20set ftpuser=ftp123set ftppwd=12345678set ftpport=21::需要管理者模式运行for /f "tokens=12 " %%c in ('ipconfig /all ^| find /i "Physical"') do (
	set mac=%%c	echo !mac!):Loopset "Change="echo 正在监控文件夹中 ...for  %%a in (%dire%) do (
	:: 设置当前为执行下面命令的路径    pushd "%%~a"

    for %%b in (%ext%) do (
        for /f "delims=" %%c in ('dir /b "%%~b"') do (
		 echo 输入的是 "%%~a\%%~c"
		 set Change=1
		 goto label		)
    )):label
::判断是否成功上传到FTPset result=0if defined Change (

	echo open %ftpulr% %ftpport%>openFtp.txt	echo %ftpuser%>>openFtp.txt	echo %ftppwd%>>openFtp.txt
	::echo cd !mac!>>openFtp.txt	echo cd %newmac%>>openFtp.txt	
	for  %%a in (%dire%) do (
		:: 设置当前为执行下面命令的路径		pushd "%%~a"
		for %%b in (%ext%) do (
			for /f "delims=" %%c in ('dir /b "%%~b"') do (
			 ::二进制			 echo binary>>openFtp.txt			 echo put "%%~a\%%~c">>openFtp.txt
			 ::记录上传的文件			 echo "%%~a\%%~c">moveFile.txt			)
		)

	)

	echo bye>>openFtp.txt	echo Transport data......
	

	ftp -s:openFtp.txt >execute.txt	for /f %%c in (execute.txt) do (
		echo %failCode%|findstr /c:"%%c">nul 2>nul && (
		 set result=1
		)
	)

	if !result!==0 (
       for /f "delims=" %%i in (moveFile.txt) do (
           Md "uploaded" 2>nul		   echo %%i
           move "%%~i" "uploaded\"        )    )	)popdgoto Loop

2.linux机器

可以用ftp脚本来搞


打赏

本文链接:https://www.kinber.cn/post/4303.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客