rsync

使用ssh 传输rsync 流量具有下述优点:可通过网络加密数据,也可利用使用ssh 客户端密钥建立的任何信任关系。如果要在两台计算机之间保持大型、复杂目录结构的同步性(尤其是两者间的差异很小时),那么rsync 就是一种使用起来极为方便(并且执行速度很快)、随心所欲的工具。

参数:

-a 归档模式,表示以递归方式传输文件,并保持所有属性,等同于-rlptgoD, -a选项后面可以跟一个 –no-OPTION 这个表示关闭-rlptgoD中的某一个例如 -a–no-l 等同于-rptgoD;

-r 对子目录以递归模式处理,主要是针对目录来说的,如果单独传一个文件不需要加-r,但是传输的是目录必须加-r选项;

-t 保持文件的时间属性;

-p 保持文件的权限属性;

-l 保留软链接;

-L 同步软链接的同时同步其源文件;

-g 保存文件数组;

-o 保持文件的属主;

-D 保存设备文件信息;

-v =visual,可视化;

-P 显示同步过程,比v更详细;

-u =update,加上该选项,如果DEST中文件比SRC中的新,则不同步;

-z =zip,传输时压缩;

–delete 删除DEST中SRC没有的文件;

–exclude 过滤指定文件,不同步;

–progress 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等等;

-e 指定端口;

-e:通过 ssh 传递文件

例:加上端口信息的ssh传输:

-e "ssh -p 2234"

rsync -arvP -e "ssh -p 2234" localdir host:remotedir

--delete:删除目标副本中的文件和目录。

默认情况下,rsync 只复制文件和目录,但如果从源主机删除了文件和目
录,那就不会从目标副本中删除这些文件和目录。要精确保存副本,须
包含 标志:

root@rover:~# rsync -ave ssh greendome:/home/ftp/pub/ /home/ftp/pub/

-v:是 verbose模式,输出更详细log。默认不输出这些信息。

-a:archive模式。在做备份的时候必备这个参数。(并不代表打包目标副本。)

-t:更新时间戳。

-z:压缩模式。With this option, rsync compresses any data from the files that it sends to the destination machine. This option is useful on slow connections. The compression method used is the same method that gzip uses.

-l:在目标服务器上重建主机上的link。

-n, --dry-run:不实施任何传输。只是报告模拟的传输结果。

实例:

rsync -avze ssh /home/me/public_html/contents/ user@toku:/home/tenten/contents/

Shell 例子:

#!/bin/sh

# -------- sync_contents.sh ----------
# Synchronization for user contents.
# This program is copyright (c) 2006
# Kreny
# Ver. 1.0.0 2006/8/3 16:53:30
#

# Date for logging
DATE=date +'%Y-%m-%d %T'

# Log file full pathname
LOG_FILE='/home/user/rsync_contents.log'

if [ ! -f $LOG_FILE ]; then
echo "ERROR:"
echo "Please check whether the log file $LOG_FILE exists and the writting permission."
exit
fi

# Contents path in original Server. No backslash at the end of the path.
CONTENTS_PATH_ORGINAL='/homeuser/public_html/contents'

# Contents path in target Server. Enter the backslash at the end of the path.
CONTENTS_PATH_TARGET='/homeuser/public_html/'

# Target server list
TARGET_SERVER='toku toku toku'

# ssh login username
USER_NAME='user'

# rsync 's path
RSYNC='/usr/bin/rsync'

echo "----------- $DATE -----------" >> $LOG_FILE

for cur_server in $TARGET_SERVER
do
echo "Synchronization for Server $cur_server ..." >> $LOG_FILE
$RSYNC -zave ssh $CONTENTS_PATH_ORGINAL $USER_NAME@$cur_server:$CONTENTS_PATH_TARGET >> $LOG_FILE
done

echo "----------- END -----------" >> $LOG_FILE

Rsync 使用数据备份完成后该操作会自行终止。对于此,最好是在上述命令的基础上再添加一个“-a”选项(对于文件)和“-e”选 项,指定使用远程的shell程序,以保障安全。此时,远端的shell将使用一个加密协议,比如ssh,以便远程的shell可以使用-e ssh格式。

这 样,上述Rsync 使用命令就有了ssh加密协议的保护,具体形式如下:

rsync -a -e "ssh -p 2234" localdir host:remotedir

如果想了解整个文件拷贝过程中所发生的一切,可以使用-v和-progress选项。-v选项表示打印出详细的操作过程。rsync默认的操作是单纯地 拷贝文件,不打印任何东西,尽量不打扰用户,只是简单而快速地完成任务。若只使用一次,-v选项将会报告所有被拷贝的文件,并在最后给 出总量。若使用两次-v选项,即在命令中使用-vv的话,rsync将不仅报告所有被拷贝的文件,还会报告那些勿需拷贝的文件,并在最后给出更 详细的信息。-progress选项的任务则主要是显示当前的拷贝进度,包括当前文件的大小,已完成的百分比,当前的传输速度,剩余时间估计, 等。如果要写一条使用复选项模式和ssh隧道协议的命令,同时还要求有进度指示器的话,则可采用如下形式:

rsync -avv -e ssh -progress localdir host:remotedir

如果在拷贝文件的过程中,传输被中断,Rsync 使用的默认操作是撤消前操作,即从目标机上删除已拷贝的部分文件。如果想在下次拷贝时续传文件 ,不需要重新拷贝所有文件的话,可以使用-partial选项阻止rsync在传输中断时删除已拷贝的部分。如果希望同时使用-partial和-progress 选项的功能,则可以使用-P选项,这是rsync提供的一个更便捷的选项,可以代替上述两者。因此,如果想使用复选项模式的文件拷贝,并关闭 删除选项,同时要求有进度指示器和ssh隧道协议的保护,则可以采用如下命令:

rsync -arvvP -e "ssh -p 2234" localdir host:remotedir

如果希望系统按照预定的调度计划自行处理,可以简单地在后台守护进程任务中添加Rsync 使用命令。如:要添加rsync命令到/etc/crontab文件中 ,方法如下所示:

30 4 * user rsync -aP -e ssh localdir host:remotedir

后台作业任务中的前五项用于定义某个任务何时被调度,第六项告诉后台守护进程哪一个用户将运行该任务。可以把以下例子中的“user”字 符串替换为将运行该任务的实际的用户帐号。例中的后台守护程序被设置为每天早上4:30运行一次。前五个字段的含义依次为秒,小时,月份 中的某一天,年份中的某月和一周中的星期几。时间以0开头,所以秒为0-59,小时为 0-23。接下来的两个字段,月份中的某一天和年份中的 某月,为1-31和1-12。最后一个字段,星期中的某一天,为0-7,不管是0还是7都代表星期天。实际的后台守护进程配置文件都比这复杂,但这 些是用rsync进行数据备份时创建后台程序的基本操作。如果还想了解更多的创建后台守护程序的相关信息,可以通过启动命令man cron,man crontab和man 5 crontab来获取。如果想集中管理数据备份后台守护进程,可以在备份服务器上创建如下的后台守护项:

30 4 * user rsync -aP -e ssh host:remotedir localdir

按照如上所述的方式设置后,Rsync 使用将从某个特定的远程主机上的目录(remotedir)中收集文件信息,并复制这些文件到你所指定的本地 (localdir)目录中。

Windows OVF导入步PVE骤示例

Microsoft为Windows开发提供了虚拟机下载服务。以下将利用这些镜像演示OVF导入功能。

*下载虚拟机镜像压缩包*

在选择同意用户协议后,选择基于VMware的Windows 10 Enterprise(Evaluation-Build),下载zip压缩包。

*从zip压缩包提取磁盘镜像*

使用unzip或其他工具解压缩zip压缩包,通过ssh/scp将ovf和vmdk文件复制到Proxmox VE服务器。

*导入虚拟机*

执行以下命令可以创建新虚拟机,虚拟机的CPU、内存和名称沿用OVF配置文件中的设置,磁盘镜像将导入local-lvm存储。网络配置可以手工完成。

qm importovf 999 WinDev1709Eval.ovf local-lvm

至此,虚拟机导入完成,可以启动使用。

在Debian 10(Buster)上安装Proxmox VE 6的方法

安装后的一些问题,还在想办法解决


vm: ping domain
host:
journalctl -n xx -f
UFW BLOCK .....53......


Introduction

The installation of a supported Proxmox VE server should be done via Bare-metal_ISO_Installer. In some case it makes sense to install Proxmox VE on top of a running Debian Buster 64-bit, especially if you want a custom partition layout. For this HowTO the following Debian Buster ISO was used: [1].

Install a standard Debian Buster (amd64)

Install a standard Debian Buster, for details see Debian, and configure a static IP. It is recommended to only install the "standard" package selection, and nothing else, as Proxmox VE brings its own packages for qemu, lxc. A desktop environment is not necessary.

Add an /etc/hosts entry for your IP address

Please make sure that your machine's hostname is resolvable via /etc/hosts, i.e. you need an entry in /etc/hosts which assigns an address to its hostname.

Make sure that you have configured one of the following addresses in /etc/hosts for your hostname:

  • 1 IPv4 or
  • 1 IPv6 or
  • 1 IPv4 and 1 IPv6

Note: This also means editing or rather removing the address 127.0.1.1 that might be present as default.

For instance, if your IP address is 192.168.15.77, and your hostname prox4m1, then your /etc/hosts file could look like:

127.0.0.1       localhost.localdomain localhost
192.168.15.77   prox4m1.proxmox.com prox4m1

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

You can test if your setup is ok using the hostname command:

hostname --ip-address
192.168.15.77 # should return your IP address here

Install Proxmox VE

Adapt your sources.list

Add the Proxmox VE repository:

echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list

Add the Proxmox VE repository key:

wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg
chmod +r /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg  # optional, if you have a non-default umask

Update your repository and system by running:

apt update && apt full-upgrade

NOTE: If you have enabled other another arch (typically, i386 to run some older software) and apt complains about not being able to find /binary-i386: "Unable to find expected entry 'pve/binary-i386/Packages'" you need to remove other arch or use instead the row:

deb [arch=amd64] http://download.proxmox.com/debian/pve buster pve-no-subscription

this is because Proxmox repository does not have any other arch besides amd64; more info about multiarch on debian at: https://wiki.debian.org/Multiarch/HOWTO.

Install Proxmox VE packages

Install the Proxmox VE packages

apt install proxmox-ve postfix open-iscsi

Configure packages which require user input on installation according to your needs (e.g. Samba asking about WINS/DHCP support). If you have a mail server in your network, you should configure postfix as a satellite system, your existing mail server will then be the relay host which will route the emails sent by the Proxmox server to their final recipient.

If you don't know what to enter here, choose local only and leave the system name as is.

Finally, reboot your system, the new Proxmox VE kernel should be automatically selected in the GRUB menu.

Note: If you have a subscription key don't forget to switch to the enterprise repository after installation, see Package repositories.

Recommended: remove the os-prober package

The os-prober package scans all the partitions of your host, including those assigned to guests VMs, to create dual-boot GRUB entries. If you didn't install Proxmox VE as dual boot beside another Operating System, you can safely remove the os-prober package.

apt remove os-prober

Connect to the Proxmox VE web interface

Connect to the admin web interface (https://youripaddress:8006). If you have a fresh install and didn't add any users yet, you should use the root account with your linux root password, and select "PAM Authentication" to log in.

Once logged in, create a Linux Bridge called vmbr0, and add your first network interface to it.

Adapt vmbr0 settings

Troubleshooting

resolv.conf gets overwritten

The PVE GUI expects to control DNS management and will no longer take its DNS settings from /etc/network/interfaces. Any package that auto-generates (overwrites) /etc/resolv.conf will cause DNS to fail, e.g. packages 'resolvconf' for IPv4 and 'rdnssd' for IPv6.

ipcc_send_rec[1] failed

If you see

ipcc_send_rec[1] failed: Connection refused

then you should review your /etc/hosts file according to the instructions above.

Optional Steps

Optional: Remove the Debian kernel

apt remove linux-image-amd64 'linux-image-4.19*'

Update and check grub2 config by running:

update-grub

我们将介绍在Debian 10(Buster)Linux系统上安装Proxmox VE 6服务器,推荐和支持的Proxmox VE服务器安装通过Bare-metal_ISO_Installer完成。

简介

Proxmox虚拟环境(VE)是一种企业级开源服务器虚拟化解决方案,基于Debian Linux发行版,具有经过修改的Ubuntu LTS内核,它允许你部署和管理虚拟机和容器。

此设置假设你正在运行Debian 10 Buster Linux服务器(参考:安装Debian 10 Buster的方法),如果你没有,请按照我们的参考文章在将用作虚拟机监控程序的专用服务器上安装Debian 10,请注意,你需要一个支持Intel 64或AMD64 CPU扩展的64位处理器。

以下是在Debian 10(Buster)上安装Proxmox VE 6的方法。

一、更新Debian OS和设置系统主机名

1、更新Debian OS

在开始之前更新apt包索引:

sudo apt -y update

sudo apt -y upgrade

sudo reboot

2、设置系统主机名

我们需要设置主机名并确保它可以通过/etc/hosts解析:

sudo hostnamectl set-hostname prox6node01.example.com --static

echo "10.1.1.10 prox6node01.example.com prox6node01" | sudo tee -a /etc/hosts

example.com应替换为有效的域名。

二、添加Proxmox VE存储库

所有Proxmox软件包都将从匹配的上游存储库中提取,该存储库是手动添加到系统的,在这里,我们将添加Proxmox VE No-Subscription Repository。

导入GPG密钥:

wget -qO - http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg | sudo apt-key add -

-------- or -------

wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg

sudo mv proxmox-ve-release-6.x.gpg /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg

chmod +r /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg

然后添加Proxmox VE存储库:

echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" | sudo tee /etc/apt/sources.list.d/pve-install-repo.list

你现在可以通过运行以下命令更新存储库和系统:

sudo apt update && sudo apt dist-upgrade

添加Proxmox VE Ceph存储库:

这是Proxmox VE的主要Ceph存储库,并保存Ceph软件包以供生产使用,你还可以使用此存储库仅更新Ceph客户端:

echo "deb http://download.proxmox.com/debian/ceph-nautilus buster main" | sudo tee /etc/apt/sources.list.d/ceph.list

三、安装Proxmox VE软件包

这些是为安装Proxmox VE软件包而执行的命令:

sudo apt install proxmox-ve postfix open-iscsi

如果你的网络中有邮件服务器,则应将postfix配置为satellite system,并且现有的邮件服务器将是“relay host”,它将把proxmox服务器发送的电子邮件路由到最终收件人,如果你不知道在此输入什么,请选择仅限本地。

安装后重新启动Debian系统以使用Proxmox VE内核启动:

sudo reboot

四、访问Proxmox VE Web界面

连接到Proxmox VE管理Web界面(https://youripaddress:8006):

Proxmox VE控制面板如下所示:

选择“PAM Authentication”并使用服务器的root用户密码进行身份验证。

登录后,创建一个名为vmbr0的Linux Bridge:

并添加你的第一个网络接口:

至此,整个Proxmox VE 6安装完成。