win系统与linux系统之间文件备份

简介:

需求:

    win主机上一个目录为备份目录,每天都会有增量文件,而我们要将这些增量文件全部copy到异地linux主机,如下图

wKiom1ei4HrQ1P6TAACK-BsdpEA214.jpg-wh_50

win主机:

1、安装 rsync 客户端 (cwRsync)

2、同步脚本

linux主机:

1、安装rsync服务即可


linux配置:


linux的rsync的配置如下:

1
2
3
4
5
6
7
8
9
10
11
[tfsbackup]
path= /data/tfsbackup
comment=tfsbackup
ignore errors =  yes
read  only=no
write only=no
hosts allow=*
hosts deny=*
list= false
auth  users = rsync
secrets  file = /etc/rsyncd .secrets

win配置:

1、安装 cwRsync (附件中可以下载 或 https://www.itefix.net/cwrsync)

将文件解压,变量配置即可,命令行测试通过即可。

wKiom1ei5KiShtU_AACkjv9paVw334.jpg-wh_50

2、同步脚本如下:脚本名暂定 tfs.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env python
# -*- coding:utf-8 -*-
 
"""
filename:tfs.py
function:检索指定目录下的1天内的文件,同步到服务器上。
"""
import  os
import  time
import  glob
import  subprocess
import  os.path
 
expires  =  172800                  #时间戳差值在2天,为了保险会校验两天内的增量文件
currentTime = int (time.time())     #获取当前时间戳
 
args = r '-az'
remotehost  = r 'rsync@10.168.0.59::tfsbackup'
passwordFile = r '--password-file=/cygdrive/c/cwrsync/rsyncd.secrets'
path  =  r 'E:\tfs\*'
comm = r 'c:\cwRsync\rsync.exe'
 
#以上为rsync最后的命令表现形式;/cygdrive/c/cwrsync/rsyncd.secrets表示c盘下的cwrsync/rsyncd.secrets文件。
 
srcpath = r '/cygdrive/e/tfs/'         #/cygdrive/e/表示windows系统的E盘,
 
filelist  =  glob.glob(path)   #获取给定路径下所有文件名
 
#过滤出最近2天内的文件,
def  checkFileTime(filename):
     fileTime  =  os.stat(filename).st_mtime
     if  (currentTime  -  fileTime > expires):
         pass
     else :
         filename  =  os.path.basename(filename)
         srcfile = srcpath + filename
         rsyncFile(srcfile)
#rsync到远程主机上
def  rsyncFile( file ):
     cmd  =  "%s %s %s %s %s"  % (comm,args, file ,remotehost,passwordFile)
     result  =  subprocess.call(cmd)
     if  result ! =  0 :
         print  "rsync to "  , remotehost ,  " fail ! !"
         time.sleep( 10 )
     else :
         print  file  "rsync to "  , remotehost ,  "successful !"
 
for  filename  in  filelist:
     checkFileTime(filename)


因为备份的win主机上没有权限安装Python环境。所以转换到exe执行程序就可以了。


PyInstaller恰满足这个需求。本文PyInstaller的版本是2.0,支持Python2.7。下面讨论怎样安装,使用PyInstaller。

PyInstaller本身并不属于Python包。在安装 pyinstaller 之前假设你已经安装了python ,注意把python 环境变量配置好, 即 进入cmd后 输入 python 会进入 python shell.

pyinstaller安装:

1,下载pyinstaller并解压(可以去官网下载最新版)

1
C:\pyinstaller-2.0

2,安装最新版本的 pywin32-217.win32-py2.7.exe:

不然会出现错误Error: PyInstaller for Python 2.6+ on Windows needs pywin32.

3

1
2
C:\Users\xisuo> cd  C:\pyinstaller-2.0
C:\pyinstaller-2.0>python pyinstaller.py -w --onefile D:\py\tfs.py

wKioL1ei6xPA4EIzAAHf5Fytt0A090.jpg-wh_50

上面的命令成功运行后tfs.py 会生成一个tfs文件夹。在这个文件夹下面会有一个名为dist的文件夹,此文件夹下面有转换好的tfs.exe。

wKiom1ei7IGRaWoRAAAqelDTYik668.jpg-wh_50

当你执行文件tfs.exe即可rsync到远程主机上。做计划任务即可。



本文转自 西索oO 51CTO博客,原文链接:http://blog.51cto.com/lansgg/1834363

相关文章
|
1月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
149 3
Linux系统禁用swap
|
1月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
198 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
174 0
Linux系统初始化脚本
|
2月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
161 18
|
1月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
162 1
|
1月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
655 1
|
2月前
|
缓存 监控 Linux
Linux系统清理缓存(buff/cache)的有效方法。
总结而言,在大多数情形下你不必担心Linux中buffer与cache占用过多内存在影响到其他程序运行;因为当程序请求更多内存在没有足够可用资源时,Linux会自行调整其占有量。只有当你明确知道当前环境与需求并希望立即回收这部分资源给即将运行重负载任务之前才考虑上述方法去主动干预。
1080 10
|
Linux
百度搜索:蓝易云【Linux中如何对文件进行压缩和解压缩?】
这些是在Linux中进行文件压缩和解压缩的常见方法。根据您的需求和具体情况,可能会使用其他压缩工具和选项。您可以通过查阅相应命令的帮助文档来获取更多详细信息。
176 1
|
NoSQL Java Linux
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
|
算法 Java Linux
Linux下文件增删改查定位压缩操作与权限所属用户
Linux下文件增删改查定位压缩操作与权限所属用户
160 0