この記事では、クラウド サーバー ECS 間のデータ転送の実装方法を紹介し、その具体的な手順に焦点を当てます。この記事の内容は非常にコンパクトなので、根気よく勉強していただければ幸いです。
クラウド サーバー ECS 間のデータ送信の実装方法
はじめに
今日の情報技術の急速な発展では、サーバー A大量のファイル データが毎日他のスタンドアロン コンピュータと交換され、ファイル転送は誰にとっても当たり前のことです。したがって、その重要性は自明のことです。ファイル転送方法にはさまざまなものがありますが、自分に合ったファイル転送ツールを選択すると、半分の労力で 2 倍の結果を得ることができます。リソースの節約、送信の促進、作業効率の向上、暗号化保護など。そのため、NC、FTP、SCP、NFS、SAMBA、RSYNC/SERVERSYNC などの多くのファイル転送ツールが登場しています。それぞれの方法には独自の特徴があります。この記事では、読者がファイル転送についてより詳しく理解できるように、最初にファイル転送の基本原理を簡単に紹介し、次に Unix/Linux プラットフォームと Windows プラットフォームで一般的に使用されるファイル転送方法を詳細に紹介し、それぞれの特徴を比較します。これにより、さまざまなニーズに応じて適切なファイル転送方法を選択できます。
ファイル転送の原則
ファイル転送は、データ ソースとデータ間のファイル データの転送です。このプロセスはファイル データ通信とも呼ばれます。オペレーティング システムは、ファイル データを一時保存用のメモリに抽出し、それをコピー先にコピーします。ファイル自体は、全体を別の場所に転送するだけです。復号化する必要はなく、パッケージを圧縮するときにのみ復号化が必要です。データ全体として、大きなファイルをあるホストから別のホストに瞬時に転送することはできませんが、転送は連続的なプロセスであるため、転送が予期せず中断された場合、ターゲット パスは存在しません。また、複数のファイルを転送する場合、転送が途中で中断された場合は転送されませんが、以前に転送されていたファイルは転送されます。成功(圧縮ファイルパッケージを転送した場合、ファイル数に関係なく、それ自体で 1 つのファイルとして扱われます)。
一般的にファイルデータを転送するツールとしては、NC、FTP、SCP、NFSなどが挙げられますが、主なファイル転送ツールの特徴と使い方を詳しく紹介します。
NETCAT
ネットワーク ツールの中でも「スイス アーミー ナイフ」と呼ばれるほど強力なファイル転送能力を持っています。
一般的に使用されるパラメータ:
簡単な使用例
1.ポート スキャン21 -24 (例として IP192.168.2.34 を取り上げます)。
nc -v -w 2 192.168.2.34 -z 21-24 nc: connect to 192.168.2.34 port 21 (tcp) failed: Connection refused Connection to 192.168.2.34 22 port [tcp/ssh] succeeded! nc: connect to 192.168.2.34 port 23 (tcp) failed: Connection refused nc: connect to 192.168.2.34 port 24 (tcp) failed: Connection refused
2. ファイルを 192.168.2.33 から 192.168.2.34 にコピーします。
192.168.2.34 上:
nc -l 1234 > test.txt
192.168.2.33 上:
nc 192.168.2.34 < test.txt
3. nc コマンドを使用して memcached を操作します。
ストレージ データ:
printf “set key 0 10 6rnresultrn” |nc 192.168.2.34 11211
データの取得:
printf “get keyrn” |nc 192.168.2.34 11211
データの削除:
printf “delete keyrn” |nc 192.168.2.34 11211
ステータスの表示:
printf “statsrn” |nc 192.168.2.34 11211
トップ コマンドをシミュレートして、ステータスの表示:
watch “echo stats” |nc 192.168.2.34 11211
キャッシュのクリア:
printf “flush_allrn” |nc 192.168.2.34 11211 #谨慎操作,清空了缓存就没了
SCP (安全なコピー)
はじめに
#SCP コマンドの使用法は、RCP コマンドの形式と非常に似ています。違いは、SCP は、検証が必要な場合にパスワードまたはパスフレーズの入力を求める点です。 RCP よりも安全です。 SCP コマンドは、SSH を使用してデータを送信し、SSH と同じ認証モードを使用して同じセキュリティを保証します。現在、SSH は、リモート ログイン セッションやその他のネットワーク サービスにセキュリティを効果的に提供する、より信頼性の高いプロトコルです。リモート管理時の情報漏洩問題を防止します。 SCP は SSH ベースのアプリケーションであるため、データ送信用のマシンは SSH サービスをサポートしている必要があります。
特徴
SCP は RCP に似ており、特定のファイル システム上のファイル属性を保持したり、ファイル属性を保持したりすることができます。 recursive サブディレクトリをコピーします。
SCP はファイル転送の機密性が優れています。同時に、ファイルを転送するときにパスワードを入力する必要があり、SSH の設定上の問題が発生するという代償が伴い、特定のニーズを持つユーザーにとっては、より適切な転送ツールとなります。
一般的な例
使用 SCP 命令,需要输入密码,如果不想每次都输入,可以通过配置 SSH,这样在两台机器间拷贝文件时不需要每次都输入用户名和密码:
生成 RSA 类型的密钥:
上述命令生成 RSA 类型的密钥。在提示密钥的保存路径和密码时,可以直接回车使用默认路径和空密码。这样,生成的公共密钥保存/.ssh/id_rsa.pub,私有密钥保存在 /.ssh/id_rsa 。然后把这个密钥对中的公共密钥的内容复制到要访问的机器上的 /.ssh/authorized_keys 文件中。这样,下次再访问那台机器时,就不用输入密码了。
scp可以在 2个 linux 主机间复制文件
命令基本格式:
scp [可选参数] file_source file_target
从本地复制到远程(如下四种方式):
scp local_file remote_username@remote_ip:remote_folder scp local_file remote_username@remote_ip:remote_file scp local_file remote_ip:remote_folder scp local_file remote_ip:remote_file
注:第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名。
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名。
从远程复制到本地:
注:从远程复制到本地,只要将从本地复制到远程的命令的后2个参数 调换顺序 即可
scp root@www.cumt.edu.cn:/home/root/others/music /home/space/music/i.mp3 scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/ Rsync
Rsync是linux/Unix文件同步和传送工具。用于替代rcp的一个工具,rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时rsync server会开一个873端口,等待客户端去连接。连接时rsync server会检查口令是否相符,若通过口令查核,则可以通过进行文件传输,第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份。
安装方式:
注:可以使用每个发行版本自带的安装包管理器安装。
sudo apt-get install rsync #在debian、ubuntu 等在线安装方法; slackpkg install rsync #Slackware 软件包在线安装; yum install rsync #Fedora、Redhat 等系统安装方法;
源码编译安装:
wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz tar xf rsync-3.0.9.tar.gz cd rsync-3.0.9 ./configure && make && make install
参数介绍:
rsync六种不同的工作模式:
1.拷贝本地文件,将/home/coremail目录下的文件拷贝到/cmbak目录下。
rsync -avSH /home/coremail/ /cmbak/
2.拷贝本地机器的内容到远程机器。
rsync -av /home/coremail/ 192.168.11.12:/home/coremail/
3.拷贝远程机器的内容到本地机器。
rsync -av 192.168.11.11:/home/coremail/ /home/coremail/
4.拷贝远程rsync服务器(daemon形式运行rsync)的文件到本地机。
rsync -av root@172.16.78.192::www /databack
5.拷贝本地机器文件到远程rsync服务器(daemon形式运行rsync)中。当DST路径信息包含”::”分隔符时启动该模式。
rsync -av /databack root@172.16.78.192::www
6.显示远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
rsync -v rsync://192.168.11.11/data
rsync配置文件说明:
cat/etc/rsyncd.conf #内容如下 port = 873 #端口号 uid = nobody #指定当模块传输文件的守护进程UID gid = nobody #指定当模块传输文件的守护进程GID use chroot = no #使用chroot到文件系统中的目录中 max connections = 10 #最大并发连接数 strict modes = yes #指定是否检查口令文件的权限 pid file = /usr/local/rsyncd/rsyncd.pid #指定PID文件 lock file = /usr/local/rsyncd/rsyncd.lock #指定支持max connection的锁文件,默认为/var/run/rsyncd.lock motd file = /usr/local/rsyncd/rsyncd.motd #定义服务器信息的,自己写 rsyncd.motd 文件内容 log file = /usr/local/rsyncd/rsync.log #rsync 服务器的日志 log format = %t %a %m %f %b syslog facility = local3 timeout = 300 [conf] #自定义模块 path = /usr/local/nginx/conf #用来指定要备份的目录 comment = Nginx conf ignore errors #可以忽略一些IO错误 read only = no #设置no,客户端可以上传文件,yes是只读 write only = no #no为客户端可以下载,yes不能下载 hosts allow = 192.168.2.0/24 #可以连接的IP hosts deny = * #禁止连接的IP list = false #客户请求时,使用模块列表 uid = root gid = root auth users = backup #连接用户名,和linux系统用户名无关系 secrets file = /etc/rsyncd.pass #验证密码文件
以上がクラウドサーバーECS間のデータ送信の実装方法についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。