问题现象:需要将linux目录下的数据同步到windows目录下,布置rsync步骤麻烦
问题分析:windows下使用winscp可以拷贝数据
问题解决:通过编写脚本,实现windows与linux目录数据同步
1、下载winscp软件安装在windows系统上
winscp下载地址:https://winscp.net/eng/index.php
2、在winscp的安装目录下创建一个同步脚本
#以下放置到winscp根目录,文件名 bak.txt
option batch continue
option confirm off
option transfer binary
option synchdelete on
open sftp://username:password@192.168.0.34:22
cd /usr/local/dbbak/mysql
lcd D:\data_bak
synchronize local
close
exit
open sftp://用户名:密码@linux服务器IP地址:端口
cd /linux服务器需要同步的目录路径
lcd windows系统需要同步文件夹路径
synchronize local|remote|both ‘local’-远程向本地同步|‘remote’-本地向远程同步|‘both’-互相同步
如果需要同步后删除文件,可以使用rm
3、创建一个同步执行批处理:autosync.bat,放在winscp安装根目录内上,调用bak.txt执行同步
@echo off
cd C:\Program Files (x86)\WinSCP
winscp.com /script=bak.txt /ini=Winscp.ini /log=log.txt
/script=调用的winscp命令脚本
/ini=Winscp.ini默认配置文件
/log=生产的日志文件
4、添加windows计划任务并启动
5、winscp指令如下:
winscp> help
call 执行任意远程Shell命令
cd 改变远程工作目录
chmod 改变远程文件权限
close 关闭会话
exit 关闭所有会话并结束程序
get 从远程目录下载文件到本地目录
help 显示帮助
keepuptodate 在一个远程目录连续反映本地目录的改变
lcd 改变本地工作目录
lls 列出本地目录的内容
ln 新建远程符号链接
lpwd 显示本地工作目录
ls 列出远程目录的内容
mkdir 新建远程目录
mv 移动或者重命名远程文件
open 连接到服务器
option 设置或显示脚本选项的值
put 从本地目录上传文件到远程目录
pwd 显示远程工作目录
rm 删除远程文件
rmdir 删除远程目录
session 列出连接的会话或者选择活动会话
synchronize 用一个本地目录同步远程目录