zoukankan      html  css  js  c++  java
  • vmware里面的linux怎么和windows相互传文件

    我们常常遇到这样的问题。高版本号的vmware遇到低版本号的linux。使用起来就比較抠脚,比方低版本号的linux安装在高版本号的vmware里。

    1.不能全屏显示虚拟机

    2.每次切换出来。总要按一下Ctrl+Alt键

    3.特别可恨的是不能直接互传文件

    针对以上情况。本篇博客仅仅是针对第三个问题展开的,怎么将vmware里的linux和外面的window互传文件,方法非常多,有

    1.建立共享文件夹

    2.通过建立ftp,也就是把windows当做ftp的server

    3.建立linux的tftp。也就是把linux当做tftp的server

    我仅仅试过以上三种方法。其它的没有试过,临时不在这里面讨论。

    以下我说一下各自的长处缺点,第一种建立共享文件夹的方法。我仅仅是在fedora中试过。这个是看着视频做的,视频是通过图形界面来操作的。只是建立共享文件夹仅仅是针对这款fedora比較有用,你非常难把它移植到其它版本号的linux的中。当然这仅仅是对于我这样的linux技术不是非常好的人来说的。

    所以针对这样的移植性不好的方法我就舍弃了。另外一种方法。我是想在windows上建立一个ftpserver,然后你的linux当做client,上传文件到windows上的server中,之后的windows上的文件就由你怎么处置了。只是当我想从linux上传送一个文件夹到windows的ftpserver上去的时候,出现了两个问题。第一个,我想传送一个没有被压缩的文件夹是传送不进去的,仅仅能单个的传送。所以你想传送一个整个的文件的话,你就必须想办法先把它在linux中做成一个压缩文件,然后就可以在命令行中传送,这样看似是可行的,只是问题是,我linux中通过命令行传送过去的文件。在windows的ftp上打开会出现异常,无论是普通的.c,.txt文件还是你已经压缩过的tar.bz2文件等等。都会出现这样的异常,详细什么原因我也不清楚。可能是windows自带的ftp有点问题吧,哈哈。

    两个windows之间互传文件是没有问题的。

    所以针对以上两种方法的种种缺点,我这里强烈推荐一种方法,也就是用第三种方法,在linux中建立一个tftpserver,建立这个tftpserver的过程那可不是通过linux的图形界面设置的。这里都是用命令行设置的,为什么要介绍这样的方法,由于用命令行设置可移植性比較好。

    第一步:首先关闭你linux的防火墙和SELinux,这里的命令我就不介绍了。百度就可以。

    第二步:首先用命令行查看你的ftp-server有没有安装上,用命令:rpm -qa | grep tftp-server


    假设成功安装就会出现这样的提示信息。

    第三步:假设没有安装,则用两条命令运行下面就可以:

    yum install xinetd

    yum install tftp-server

    第四步:用命令查看有没有成功安装。即:

    rpm -qa | grep tftp-server

    成功以后,运行命令:

    vim /etc/xinetd.d/tftp


    改动后的文件如上图。改动了两处位置。一处是server_args,指定在/tftpboot文件夹下,当然你之前要在根文件夹下新建一个tftpboot的文件夹,放在哪个文件夹由你定了;改的第二处位置是disable,表示“不使能吗”,当然要选no了,就是让他工作的意思。保存退出就可以。

    还要注意要运行:chmod 777 /tftpboot,把tftp的文件夹的权限改一下

    第五步:运行两个命令:

    service xinetd restart或者运行

    /etc/init.d/xinitd restart

    然后用命令:netstat -a | grep tftp,查看tftpserver的状态,出现例如以下截图就可以:


    如今linux的tftp已经配置好了,接下来我们就分别在windows上和另外一台linux机器上測试了:

    在windows上測试:

    要确保windows的tftpclient已经打开,假设打开dos界面:你输入tftp命令,dos提醒你tftp“不是内部或外部命令,也不是可执行的程序”。那就如今windows上先做一小段的配置:配置步骤例如以下:先进入控制面板里的这个界面。然后点击”打开或关闭windows功能“,把tftpclient勾选上确定就可以。





    如今你在dos界面里面输入tftp会出现例如以下界面:说明windows的tftp的client能够使用了。

    怎么使用主要是两个命令,第一个是从linux的tftpserver端下载文件:
    命令: tftp 192.168.1.106 get b.c     ,这里的192.168.1.106是linux的server的ip,我windows的ip 是192.168.1.105
    上传命令:tftp 192.168.1.106 put b.c m.c    
    一開始我看这个put的上传命令认为非常奇怪。只是后来我最终想明确了。b.c是我windows文件夹C:UsersAdministrator文件夹下的一个文件,想把它上传到linux的/tftpboot文件夹下,只是为什么后面另一个main.c呢,假设我在linux的/tftpboot文件夹下没有main.c这个文件,先贴一张输入错误命令的指令的截图:


    以下我来分析一下错误出现的原因,一次输入 tftp 192168.1.106 put b.c,,,,,另外输入一次是tftp 192.168.1.106 put b.c m.c 两个命令的提示错误的信息是一样的。可是命令不一样,仅仅是第二个命令相差一个m.c文件,提示的错误信息都是”server上的错误:file not found“。再来看看tftp在dos以下的命令输入格式,


    看后面的样例,Uers19.txt是vax1的一个文件。所以才干用put命令传送文件,所以之前的错误命令应该知道怎么改了吧,即:如今linux中先用命令:vim m.c 保存退出,不用写什么东西。然后用dos 命令:tftp 192.168.1.106 put b.c m.c   执行就可以。

    看执行截图:




    什么竟然还有错。提示”server上的错误: Permission denied“。就是m.c的权限写过了,那你在linux里chmod 777 m.c就可以。在次运行:




    这回是真的成功了,也能够查看windows的文件夹下b.c和linux的m.c文件的内容是同样的,这就完毕了文件的复制了。。





    同理本人在另外一个linux上也能够通过相相应的put和get命令向192.168.1.106的tftpserver的linux上传和下载数据了, 只是你要上传一整个文件夹或下载一整个文件夹的话,是不行的,由于linux里面一切皆文件。你仅仅能上传一个或下载一个最简单的文件,里面不要包括子文件夹,所以要上传一整个project能够先把它用tar命令压缩一下,然后这样的文件最好仅仅在linux之间互传吧,linux传给windows一个压缩文件,总是会有点问题,所以你要传一个压缩文件。还是如今linux中互传吧。

    或许你用的另外一个linux能够直接拖文件到windows呢。那不也是能够么。呵呵。尽管这么一整套下来,是有点麻烦,总之可行。

  • 相关阅读:
    ansible自动化运维04
    ansible自动化运维03
    ansible自动化运维02
    ansible自动化运维01
    mysql innodb存储引擎和一些参数优化
    Mysql 数据库常用配置命令
    zabbix server3.4 使用mailx配置邮件报警
    32_redis cluster的核心原理分析:gossip通信、jedis smart定位、主备切换
    31_redis cluster的自动化slave迁移实现更强的高可用架构的部署方案
    30_redis cluster通过master水平扩容来支撑更高的读写吞吐+海量数据
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6863636.html
Copyright © 2011-2022 走看看