我需要将文件从一台 CentOS 服务器传输到另一台。我大约每 10 分钟传输 5MB 文件。我不需要加密。
有什么简单的方法可以快速传输这些文件?有没有比 FTP 更简单的方法?
答案1
分布式文件系统或用于crontab
执行scp
/rsync
作业。
scp = 安全远程复制,您需要设置身份文件和身份验证密钥,以进行密钥身份验证,即无需密码
crontab 任务:
crontab -e
将其插入到文件中(对于):
*/10 * * * * scp [email protected]:/remote/path/file /save/to/path
如果一切都比 ftp 更难,那么就使用 USB 拇指棒吧!!!
答案2
netcat
更简单,因为它只是cat
网络上的原始字节(ala)。但你netcat
也需要在另一端监听......“在正确的时间”:)
receiver> nc -l -s 0.0.0.0 -p 12345
然后你通过发送文件
sender> nc receiver 12345 < file
这是将文件从一台机器传输到另一台机器的最简单的方法。无需身份验证,无需加密,只有原始字节。
但我不会以任何方式推荐这种方法通过网络可靠地传输文件。使用 ssh/scp。
答案3
我想说rsync
这是可行的方法。
编写 xfer 脚本比编写 ftp 更容易,而且其工作方式(恢复、差异等)也非常智能。您还可以将其设置为定期扫描目录本身,并上传新的/更改的文件,这样您就可以跳过 crontab。
通常 rsync 是静默的,所以如果你想看看它在做什么,你需要
一个相当不错的概述/教程:http://everythinglinux.org/rsync/
(copy recursively, keep symlinks/users, verbose, checksum)
rsync --progress -avz
/copy/files/*.tar.gz
username@other-server:/destination/folder
对于分布式文件系统来说,声音复杂。你能简单地在两台机器上安装相同的 nfs 卷吗?如果只有一台在写入,你就不用担心了。
答案4
另一个选择是设置 NFS 服务器在一个节点上,然后将其安装到另一个节点上。