window与linux文件传输工具(4篇)
1.window与linux文件传输工具 篇一
文件共享是重要的网络需求,特别在企业环境中这种需求显得非常迫切,我们知道Windows主机间的文件共享非常简单,可以通过网上邻居实现。但是企业环境中主机的操作系统比较复杂,其中不乏Linux、Unix这样的系统。那如何实现Windows与Linux之间的文件共享呢?一个有效的解放方案是,在Linux平台上部署SAMBA即可实现此类共享需求。下面笔者搭建环境,实例演示在Linux中部署SAMBA的详细技术细节。
环境描述
Linux系统:Red Hat 9.0
Windows系统:Windows XP sp2
一、SAMBA服务部署
1、samba安装
(1).验证
samba是Linux系统集成的一个工具,在安装Linux的过程中用户可以选择安装。验证系统是否安装了samba可以通过如下命令进行查看:
[root@localhost root]# rpm -qa |grep samba
如果如下面所示,就说明已经安装了samba:
samba-swat-2.2.7a-7.9.0
samba-2.2.7a-7.9.0
redhat-config-samba-1.0.4-1
samba-common-2.2.7a-7.9.0
samba-client-2.2.7a-7.9.0
从图1可以看到笔者的Linux已经安装了samba。(图1)
.(2).安装
如果上述命令没有任何显示,就说明没有安装。要安装samba非常简单。将RedHat 9.0的第一张安装盘放入光驱,系统会自动挂接。如果没有挂接可输入mount /mnt/cdrom进行挂载,然后按照下面的操作进行安装:
# cd /mnt/cdrom/RedHat/RPMS
# rpm -ivh samba-common-2.2.7a-7.9.0.i386.rpm
# rpm -ivh samba-2.2.7a-7.9.0.i386.rpm
# rpm -ivh samba-client-2.2.7a-7.9.0.i386.rpm
这样我们就安装好了samba,然后输入命令进行查看:
# ls /etc/samba
可以看到有三个文件分别为lmhosts、smb.conf、smbusers。
(图2)
2、samba配置
samba安装完成后还需要配置,需要对smb.conf配置文件进行修改。我们可以用vi打开进行修改。其实对于一般的应用采用缺省设置就可以了,不过我们基于安全性和特殊性的要求需要对其中的一些项目进行修改。笔者建议修改的项目有如下几项:
(1).激活interfaces = 192.168.12.2/24 192.168.13.2/24项,这是设置可访问samba的网段,我们可以将其设置为interfaces = eth0,设置可访问的网卡。
(2).激活username map = /etc/samba/smbusers,这是用户映射,是为了服务器的安全而设置的。
(3).在smb.conf设置,申明共享文件夹。比如我们创建的共享文件夹为/home/gslw,然后分配用户访问权限。我们可以这样分配:admin、root用户可以读、写,而其他用户只能读不能写。在企业环境中我们可以通过创建组来统一设置用户的访问权限。不过需要说明的是,这些用户必须是Linux的系统用户,然后将其加入samba,
比如我们可以添加类似这样的语句:
[gslw]
comment = gslw
path = /home/gslw
write list = root
read list = gslw
smb.conf文件配置完成后保存退出即可。
(图3)
(4).下面需要配置smbusers文件,设置用户访问权限。用vi打开smbusers文件,然后将
root = administrator admin
nobody = guest pcguest smbguest
修改为
root = admin
gslw = 11
nobody = guest pcguest smbguest
保存并退出。
(图4)
配置完成后,我们输入命令testparm进行对samba配置文件的测试,如图5所示,测试正常。(图5)
3、创建共享文件夹
作为测试,我们运行命令mkdir /home/gslw创建共享文件夹,然后输入命令ls /home可以看到文件夹创建完成。
4、添加用户
要访问该共享文件夹,还需要添加用户。输入命令smbpasswd -a root,将root用户添加进来,并为其设置访问密码。同样的我们输入命令smbpasswd -a gslw,将gslw用户添加进来并为其设置密码。诸如此类,大家可以根据需要添加相应的用户。(图6)
5、设置权限
设置共享目录的访问权限,比如我们设置为完全控制可输入命令即可chmod 777 /home/gslw。权限设置完毕后需要重新启动服务,输入命令service smb restart即可。(图7)
6、访问测试
(1).linux访问
我们先在linux下访问SAMBA共享文件夹进行测试。输入命令smbclient //192.168.216.133/gslw -U root
,然后输入密码可以看到访问成功。进入smb命令行,我们输入ls命令查看共享目录中的文件,当然也可以通过mkdir命令创建目录。然后用gslw登录samba服务器,可以利用ls查看共享目录中的文件,然后用mkdir创建文件夹,可以看到没有成功,这是因为我们在samba的配置文件设置了gslw用只有读权限,没有赋予其写权限。通过上面的测试,说明我们的samba服务器创建成功,在linux下访问成功。(图8)
(2).Windows XP访问
下面我们测试在XP中是否可以访问samba服务器中的共享文件夹。打开“我的电脑”,在地址栏中输入samba服务器的IP地址。我们输入192.168.216.133回车后弹出登陆框,输入登录用户名admin密码test168,可以看到成功登录samba服务器,可以看到我们在samba的命令行下刚才创建的目录。(图9)
总结:Samba是一个网络服务器,用于Linux和Windows共享文件之用。上面演示的利用samba服务实现Linux与Windows直接的文件共享,涉及了samba的设置几个重要方面。其实,在实际应用中我们可以根据自己的需要进一步深入设置,只有把配置文件和共享目录的权限结合起来,才能使Samba服务发挥更大的作用。
2.window与linux文件传输工具 篇二
在Windows系统下我们可以使用OpenSSH软件搭建SSH环境,这样就可以通过SSH实现Windows与Linux主机间的连接。同步软件选用的是unison,它是个跨平台的开源软件,可以实现不同操作系统间文件夹的同步。在Windows系统下,unison有命令行和图形前端两种版本,其中图形前端版需要GTK+库的支持。
2 目录同步操作指南
Unison-2.27.57-Gtk.zip压缩包中的Unison-2.27.57 Gtk+.exe是unison的图形前端(图1),需要安装不低于2.12版的GTK+来支持它。
由于图形界面的操作比较直观,下面只讲解命令行下的操作方法。
2.1 Windows上实现与远程Linux主机的同步
2.1.1 在本地Windows机器上搭建好环境
解压缩Unison-2.27.57-Gtk.zip至任一文件夹,如D:unison。为操作方便,可把解压出来的Unison-2.27.57Text.exe改名为unison.exe。
安装OpenSSH并做如下配置:
(1)打开一个命令行窗口并切换到安装目录(默认路径是C:Program FilesOpenSSH)。
(2) CD进入bin目录。
(3)使用mkgroup命令创建一个组验证文件。对本地工作组,使用“-l”参数;对域,使用“-d”参数。
要同时使用域和本地工作组,最好把以下两条命令都运行一下(请注意使用>>而不是>)。如果你同时使用这两者,须编辑生成的group文件并删除掉里面相同的条目。
mkgroup-l>>..etcgroup (对本地工作组)
mkgroup-d>>..etcgroup (对域里面的组)
(4)使用mkpasswd命令创建一个名为passwd文件并把需要验证的用户加入到这个文件中。对本地工作组,使用“-l”参数;对域,使用“-d”参数。
要同时使用域和本地工作组,最好把以下两条命令都运行一下(请注意使用>>而不是>)。如果你同时使用这两者,须编辑生成的passwd文件并删除掉里面相同的条目。
mkpasswd-l[-u
mkpasswd-d[-u
注:若需要从不同于本机所在主域的其它域里增加用户,请在用户名后加上域名。
注:不必切换用户名,命令会自动增加计算机或域里的所有用户,包括服务账户和来宾帐户。
(5)开启OpenSSH服务。
net start opensshd
(6)测试服务器。最好用另外一台机器作为客户端。如果能够连接,但会马上当掉,请重启服务端机器,并尝试重新连接。
(7)确保能够SSH连接后,先修改/home(根目录),编辑注册表
将Native字符串值改为C:Program FilesOpenSSHhome
注:修改完后需要重启系统, 重新加载注册表。
(8)在C:Program FilesOpenSSH下建立目录home目录和当前登录用户名对应的目录(此例为zengshaogeng)。
cd C:Program FilesOpenSSH
mkdir home
mkdir homezengshaogeng
(9)生成密钥
cd C:Program FilesOpenSSHbin
ssh-keygen.exe-d
如图2,选择默认选项即会创建C:Program FilesOpenSSHhomezengshaogeng.ssh目录,并在目录下生成两个文件:id_dsa和id_dsa.pub,其中后缀.pub的就是公钥。
2.1.2 在远程Linux主机上搭建好环境
(1) 拷贝id-dsa.pub到远程linux服务器任意目录。
(2) 在远程linux服务器上执行命令
注:最好用root用户来操作,用其他用户在本机上未测试成功。Authorized_keys文件权限要保证不低于600。
(3)修改sshd配置文件
将
两行的注释去掉, 采用authorized_keys文件的验证用户身份。
(4) 重启sshd服务
(5)现在在windows主机的命令行窗口下ssh就可以免密码登录远程Linux主机了
(6)建好免密码连接远程Linux的SSH环境后,就可以结合unison实现远程同步了。
在Linux主机上也要配置好unison的执行环境,执行以下命令即可:
2.1.3 实现同步
首先在本地Windows主机的命令行窗口进入unison.exe所在的文件夹。
使用方法:
unison<本地目录>ssh://root@remotehostname (IP)/<远程目录的绝对路径>
如:
表示将本机的目录E:/home/AAA和远端Linux主机的DB/path/BBB进行同步。一般的,需要两台机能ssh连接,并正确输入root用户对应的密码。
注意:在主机和目录间要多加一个“/”。
如果待同步的两个目录里的文件任何一方有变动的话,再执行同步命令都会有提示让你确认,按照提示操作即可。通常会有如下几种情况需要注意:
图3是在待同步的两个目录里的文件都相同的情形下,删除本地Windows主机文件4.txt再执行同步命令的情形(这里本地Windows主机名是local,远程Linux主机名是localhost localdomain,下同)。默认选项选择了“f”,即按照unison推荐方式来操作。这种情形如果按默认操作来同步的话,会把远程Linux主机上的4.txt也删除掉。但如果你是不小心误删了文件,现在想把本地Windows主机删掉的4.txt找回来,用这个同步也可以帮你找回来,只须在这里不用默认的“f”选项,而改用“>”或“.”选项把远程Linux主机上的文件取回来即可(如图4)。
再在图4提示后按y键确认,即可完成同步。
图5是当本机和远程机上都修改了同一个文件,再同步时会提示你两端都有改变。按“?”可以得到各选项的帮助,然后按需要进行操作。本例中可以用“>”或“.”选项把本机需同步的目录全部替换成远程Linux主机上的文件,也可以用“<”或“,”选项做相反的选择。在Linux主机上,用“d”选项可以调用Linux系统的diff命令比较两个文件的不同(在Windows+OpenSSH环境由于没有diff命令,“d”选项无效,只能用“l”选项区别两文件的基本信息)。
2.2 Linux上实现与远程主机的双向同步
2.2.1 在本地Linux主机上搭建好环境
同样,先在Linux主机上配置好unison的执行环境:
由于Linux系统一般默认都安装好了SSH的服务端和客户端,只需创建好密钥。
2.2.2 在远程Windows机器上搭建好环境
在远程Windows主机上安装好OpenSSH,并把上面生成的id_dsa.pub文件上传到远程Windows主机的C:Program FilesOpenSSHhomezengshaogeng.ssh目录下。再修改C:Program FilesOpenSSHetcsshd_config文件,将
两行的注释去掉,采用authorized_keys文件验证用户身份。
再重启Windows下的OpenSSH服务,就可以在Linux主机上通过ssh命令实现免输密码和远程Windows主机进行连接:
注:username为远程Windows系统上的帐户,remotehostname (IP)为远程Windows系统的机器名(或IP地址)。
在远程Windows主机上解压缩Unison-2.27.57-Gtk.zip至任一文件夹,如D:unison。为操作方便,把解压出来的Unison-2.27.57 Text.exe改名为unison.exe。再把D:unison目录加入Windows系统环境变量。
Unsion实现同步的使用方法见2.1.3节。
另:若远程主机也为Linux系统,操作和配置方法是类似的,参照2.2.1节和2.2.2节,这里不再详述。
3 定时自动同步的实现
3.1 Linux系统下实现定时自动同步
在Linux系统下,可以使用cron服务定制任务的定时运行。由于cron是Linux的内置服务,但它不自动启动,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start//启动服务/sbin/service crond stop//关闭服务/sbin/service crond restart//重启服务/sbin/service crond reload//重新载入配置你也可以让这个服务在系统启动的时候自动启动, 可以在/etc/rc.d/rc.local这个脚本的末尾加上:/sbin/service crond start
可以用crontab-e编辑当前用户的cron服务,每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中。这个文件是不可以直接编辑的,只可以用crontab-e来编辑。
cron启动后每过一分钟读一次/var/spool/cron内的所有文件,检查是否要执行里面的命令。因此,此文件修改后不需要重新启动cron服务。此外,cron还会同时读一次/etc/crontab,因此我们配置这个文件也能运用cron服务来实现任务计划。不同的是,用crontab配置只是针对某个用户的任务,而编辑/etc crontab是针对系统所有用户的任务。
基本格式:
分时日月周命令
第1列表示分钟1~59每分钟用*或者*/1表示
第2列表示小时1~23 (0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6 (0表示星期天)
第6列要运行的命令
这里,我们希望在每周五下午的6:30同步本地Linux主机的/DB1/AA目录和远程Linux主机的/DB2/BB目录,则可以照上面说的开机启动cron服务,并用crontab-e命令编辑一个任务计划:
只要先按照第2节设置好unison和免密码认证的SSH环境,即可在无人干预的情况下实现每周的定时自动同步了。
3.2 Windows系统下实现定时自动同步
在Windows系统下,可以通过“控制面板”里的“任务计划”来定制任务的定时运行。如需定时同步本机Windows主机的D:DB1AA和远程Linux主机的/DB2/BB目录,只需新建一个批处理文件,如task.bat编辑内容如下:
再在“任务计划”里“添加任务计划”,然后按照任务计划向导,选中需运行的程序为task.bat,并设定好需要运行任务的时间,即可实现目录的定时自动同步了。
摘要:在日常文件管理和数据库备份等操作中, 经常会遇到这样的情况:我们需要在无人值守的情况下完成文件夹的同步过程, 以实现周期性的备份, 有时甚至是不同操作系统间的文件夹需要同步。在两台Windows主机中, 要实现文件夹的同步, 用Windows系统自带的公文包即可, 操作过程也比较简单, 故不在本文讨论范围之内。本研究实现了本地Windows主机与远程Linux主机, 本地Linux主机与远程Windows/Linux主机目录的定时自动同步。实例在Windows XP SP2和CentOS 4.6&CentOS 5.2系统下测试通过。
关键词:文件同步,Linux系统,自动同步,定时同步
参考文献
[1]Qian Cunhua, Nakamura Syouji, Nakagawa Toshio.Optimal Backup Policies for a Database System with Incremental Backup.Electronics and Communications in Japan, PartⅢ[J].Fundamental Electronic Science, 2002, 85 (4) :1-9.
[2]Lloyd Scott J, Peckham Joan, Li Jian, et a1.RORIB:An Economic and Em cient Solution for Real-time On-line Remote Information Backup[J].Journal of Database Management, 2003, 14 (3) :56-73.
[3]L P Cox, B D Noble.Pastiche:Making Backup Cheap and Easy[C].Boston:Proceedings of the5th USENIX Symposium on Operating Systems Design and Implementation, 2002:62-79.
[4]徐德民.操作系统原理Linux篇[M].北京:国防工业出版社, 2004.
[5]谢长生, 李晓钰.基于网络备份系统的SFTP性能优化分析与实现[J].计算机工程与科学, 2003 (5) .
[6]顾鹏, 刘立刚, 谢长生.数据存储系统备份技术研究与分析[J].计算机安全, 2003 (6) .
3.window与linux文件传输工具 篇三
说明:
本篇文章实现linux定时将www,msyql,svn目录rsync到win2003指定目录上。
win2003安装CWRsync,做为rsync的server端,运行CWRsync守护进程daemon,接受linux同步过来的文件;
linux为centos,本身就有rsync,按时rsync文件到win上。
环境:
win2003 192.168.1.2 CWRsync rsyncd服务端,以daemon守护进程运行
linux 192.168.1.3 rsync客户端
实现:
1.win2003安装CWRsync及防火墙设置
请参照:CWRsync图文安装
2.修改CWRsync配置文件rsyncd.conf(CWRsync安装目录下,我这里的安装目录是:D:CWRsync)
代码如下复制代码
uid = 0
gid = 0
use chroot = false
strict modes = false
hosts allow = 192.168.1.3
log file = rsyncd.log
# Module definitions
# Remember cygwin naming conventions : c:work becomes /cygwin/c/work
#
[www]
path = /cygdrive/e/bakup/1_3/www//CWRsync会自动将系统上所有的盘mount成/cygwin/x,因此/cygdrive/e/bakup/1_3/www指的是e:bakup1_3www目录
read nly = false
transfer logging = yes
auth users = rsyncd
secrets file = /cygdrive/D/CWRsync/rsyncd.secrets
[mysql]
path = /cygdrive/e/bakup/1_3/mysql
read nly = false
transfer logging = yes
auth users = rsyncd
secrets file = /cygdrive/D/CWRsync/rsyncd.secrets
[svn]
path = /cygdrive/e/bakup/1_3/
read nly = false
transfer logging = yes
auth users = rsyncd
secrets file = /cygdrive/D/CWRsync/rsyncd.secrets
3.添加CWRsync密码文件D:CWRsyncrsyncd.secrets
rsyncd:rsyncd //用户:密码
以上都是win2003的操作,下面是linux下的操作
4.添加rsync密码文件,这样linux定时rsync目录到win2003时就不需要输入密码
代码如下复制代码# cat /root/rsyncd.secrets
rsyncd//直接输入密码
5.修改crontab,定时激发rsync同步
代码如下复制代码
# crontab -e//添加以下内容
10 3 * * * rsync -vrlptD --progress --password-file=/root/rsyncd.secrets /home/www/data rsyncd@192.168.45.2::www
25 3 * * * rsync -vrlptD --progress --password-file=/root/rsyncd.secrets /home/mysql/data rsyncd@192.168.45.2::mysql
40 3 * * * rsync -vrlptD --progress --password-file=/root/rsyncd.secrets /home/svn rsyncd@192.168.45.2::svn
附录:
附录1.在linux端运行# rsync -avrtopg --progress --password-file=/root/rsyncd.secrets /home/www/data rsyncd@192.168.45.2::rsyncd会出现password file must not be other-accessible
continuing without password file
password:
问题password file must not be other-accessible已经回答了,保存密码的文件/root/rsyncd.secrets不应该被其它用户可读,
4.window与linux文件传输工具 篇四
之前诺基亚手机就是有一个PC套件,电脑上安装以后传送文件等等功能都可以使用了,但目前只有特定机型部分版本特殊修改过的ROM是可以支持的,大多数是不支持的,这个是现在电脑和安卓系统暂时存在不兼容的情况,所以只能使用运行fsquirt的命令来进行传输。请点击此处下载fsquirt,解压缩后,双击打开运行。
操作步骤:
1. 按键盘上的win+R的组合按键,输入fsquirt回车,(或者右击附件中的文件以管理员身份运行)如图:
2. 之后会出现一个蓝牙文件接收和发送的选项,点击“发送文件”或者“接收文件”,如图:
3. 然后选择需要发送的设备,如图:
4. 选中需要发送的文件,如图:
【window与linux文件传输工具】推荐阅读:
文件系统 :Linux文件管理11-30
网络传输文件的方法07-10
linux文件夹打包命令11-30
Linux下各个文件目录及其作用09-02
unix/linux中显示文件权限代码linux操作系统10-12
linux中tar解压gz文件方法详解linux操作系统09-18
微软下周二将发布7个补丁 修复windows漏洞Windows漏洞09-29
Windows面试题07-31