Rsync:如何在接收端即时安装Truecrypt?

深层

简短的版本:如何在truecrypt卷上保留rsync备份?困难的部分是在需要rsync时动态地挂载/卸载该卷。

细节

这是我当前的备份配置(在大多数情况下效果很好):

  • 备份源在Win7 64位上,目标是远程Linux盒(Debian)
  • 实际的数据传输是通过ssh由rsync完成的(与cygwin一起使用cwRsync)
  • rsync守护程序通过ssh按需启动

在Linux框中,备份仅受文件权限保护。我想在这里提高安全性,并将备份放入truecrypt卷中。我可以在外壳中手动熔接该卷。现在的问题是,我如何才能使rsync不仅打开ssh连接并启动rsync守护进程,而且还要在安装truecrypt卷之前(然后在之后卸载)?

我的钱是--rsync-path可以用来将命令行传递给ssh的选项-只要stdin和stdout仍然可以正常工作。我猜该命令必须是一个shell脚本。这可能吗,脚本会是什么样?

作为参考,以下是该选项的报价:

--rsync-path=PROGRAM

使用此选项指定要在远程计算机上运行什么程序来启动rsync。通常在rsync不在默认远程Shell路径(例如--rsync-path=/usr/local/bin/rsync)中时使用。请注意,它PROGRAM是在Shell的帮助下运行的,因此它可以是您希望运行的任何程序,脚本或命令序列,只要它不会破坏rsync用来进行标准输入和标准输出的操作即可。交流。

一个棘手的示例是在远程计算机上设置与该--relative选项一起使用的其他默认目录例如:

rsync -avR --rsync-path="cd /a/b && rsync" host:c/d /e/

这是完整的rsync手册页

深层

同时,自几周以来,我已经解决了所有问题并找到了对我有效的解决方案。如果有人有兴趣,我将在此处发布详细信息。特洛伊·约翰逊(Troy Johnson)的这篇文章对整个过程提供了帮助。

先决条件

  • Truecrypt已安装在Linux上,并且可以在以下路径中使用
  • 准备好的TC容器,可在以下位置购买 /home/deepc/var/backup.tc
  • cygwin和rsync已安装在Windows上,并且在路径上可用

的Linux

我制作了两个Shell脚本来在Linux机器上安装和卸载Truecrypt容器。这些脚本是通过Windows计算机上的ssh远程调用的:

〜/ bin / backup-mount.sh:

#!/bin/bash
# usage: backup-mount.sh <password>
~deepc/bin/backup-umount.sh
echo "$1" | sudo truecrypt -t --slot=2 -k "" --volume-type=normal --protect-hidden=no /home/deepc/var/backup.tc /home/deepc/mnt

〜/ bin / backup-umount.sh:

#!/bin/sh
sudo truecrypt -d /home/deepc/var/backup.tc

视窗

remote-backup.cmd:

@echo off
setlocal
set HOME=c:\home
set LC_ALL=de_DE.utf-8
set LC_CTYPE=de_DE.utf-8
set LANG=de_DE.utf-8

rem --iconv=utf-16,iso-88591
ssh -p THESSHPORT -i ../.ssh/id_dsa [email protected] bin/backup-mount.sh THEPASSWORD
rsync -rltvzPm --modify-window=1 --exclude-from=../etc/backup/excludes.txt --chmod=ugo=rwX --delete --delete-excluded --files-from=../etc/backup/files-from.txt -e "ssh -p THESSHPORT -i ../.ssh/id_dsa" --log-file=../tmp/remote-backup.log /cygdrive [email protected]:/home/deepc/mnt
ssh -p THESSHPORT -i ../.ssh/id_dsa [email protected] bin/backup-umount.sh

将此批处理文件放入任务计划程序中,例如使用每日计划。确保调整用户名,远程主机,ssh端口,Truecrypt容器密码,当然还要调整备份路径。抱歉,但是我已经浪费了太多时间,无法继续清理下去...

使用此脚本,Rsync将读取两个文本文件中的包含和排除,例如:

files-from.txt:

/c/Home/
/c/Users/deepc
...

excludes.txt:

Firefox/Cache
Firefox/*.lock
Thunderbird/*.lock
Thunderbird/**/*Junk*
Thunderbird/**/filterlog.html
Thunderbird/**/*.msf
Home/tmp
...

完毕?

这是回答原始问题的方法。仅有一个小问题:Windows上文件名中的特殊字符在Linux上被破坏,而ext2在Linux上的TC容器中使用。我尝试了所有--iconv可以想到参数组合,但无济于事。似乎我必须忍受这一点-除非有些勇敢的灵魂在这里读完为止,知道答案,然后在评论中启发我;-)(容器中的NTFS是不可选项)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何安装Truecrypt CLI?

来自分类Dev

如何在我的环境中设置rsync(Windows客户端通过WordPress安装到apache服务器)

来自分类Dev

如何在接收端打开没有SSHD的外壳?

来自分类Dev

如何重命名已安装的Truecrypt卷?

来自分类Dev

如何在Truecrypt中使用Dropbox?

来自分类Dev

优步司机如何使用 Firebase 实时(即时)接收请求?

来自分类Dev

如何在docker alpine中安装mongodb客户端?

来自分类Dev

如何在Ubuntu中安装Subversion客户端?

来自分类Dev

如何在Eclipse上安装Marketplace客户端

来自分类Dev

如何在Linux中安装SQL * PLUS客户端

来自分类Dev

如何在Docker中安装kerberos客户端?

来自分类Dev

如何在Ubuntu中安装Subversion客户端?

来自分类Dev

如何在Eclipse上安装Marketplace客户端

来自分类Dev

如何在10.04上安装MySQL客户端?

来自分类Dev

如何在Debian中安装openvpn客户端?

来自分类Dev

如何在Ubuntu 12.04上安装ownCloud客户端?

来自分类Dev

如何在 docker alpine 中安装 mongodb 客户端?

来自分类Dev

如何在 cPanel 上安装 Oracle 客户端库

来自分类Dev

如何在AngularJS中即时生成指令?

来自分类Dev

如何在nginx上进行即时解密?

来自分类Dev

如何在SwiftUI中即时更新View?

来自分类Dev

如何在nginx上进行即时解密?

来自分类Dev

如何在Freeswitch ESL客户端中发送和接收DTMF

来自分类Dev

如何在cakePHP 3.x中接收从客户端发送到服务器端的JSON

来自分类Dev

共享安装TrueCrypt容器

来自分类Dev

samba.org关闭时如何在Mac上安装rsync

来自分类Dev

samba.org关闭时如何在Mac上安装rsync

来自分类Dev

如何在不安装Sensu服务器的情况下安装Sensu客户端?

来自分类Dev

如何接收客户端发送的数据

Related 相关文章

热门标签

归档