您好,欢迎光临赵帅的博客,如果有什么不足或者错误之处,感谢您留言指出!

【推荐】Samba & SSHFS 实时同步远程代码

ubuntu 赵 帅 144浏览 0评论

Samba & SSHFS

背景:

在使用远程开发环境,比如自己的服务器,需要在mac上面连接远程linux服务器,去上传管理一些文件,或者在线编辑一些代码(用vim或emacs的大佬请略过)。一开始自己用的phpstorm的sftp连接远程linux,但是这个不支持热部署(实时同步,需要自己手动保存(Shift+Alt+Q),不过还是不爽),任何干扰我们代码效率的事情一定要搞掉,写代码一定要爽!

环境:

Ubuntu 16.04

Smaba Version 4.3.11-Ubuntu

介绍:

Samba:

我的leader师傅给我推荐Samba。首先了解,SMB(Server Message Block),即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了linux系统上,就形成了现在的Samba软件。为了实现Windows&MacLinux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows&Mac系统之间能够实现互相通信,为广泛的Linux爱好者提供了极大方便。

SSHFS

同样的道理,把ssh连接到的主机资源,映射到本机的文件系统当中,然后用户可以像操作本地文件一样操作,而实际的文件改动将通过 ssh传输到远程主机当中。类似于mount了一个windows共享目录,或者另外一台linux主机的samba共享,或者是nfs共享,只是“共享协议”变成了ssh通道罢了。

Samba 安装&配置

1、安装:

sudo apt-get install samba

2、配置:

2.1 配置简介

Samba的配置文件:

一般就放在 /etc/samba 目录中,主配置文件名为smb.conf,文件中记录着大量的规则和共享信息,所以是samba服务非常重要的核心配置文件,完成samba服务器搭建的大部分主要配置都在该文件中进行。

Samba的工作原理

客户端向Samba服务器发起请求,请求访问共享目录,Samba服务器接收请求,查询smb.conf文件,查看共享目录是否存在,以及来访者的访问权限,如果来访者具有相应的权限,则允许客户端访问,最后将访问过程中系统的信息以及采集的用户访问行为信息存放在日志文件中。

2.2 备份配置文件

➜  cd /etc/samba 
➜  cp smb.conf smb.conf.back

2.3 修改配置文件

  1. smb.conf含有多个段每个段由段名开始,直到下个段名。每个段名放在方括号中间。
  2. 配置文件中一行一个段名和参数,段名和参数名不分大小写(每段的参数的格式是:名称=****)
  3. 除了[global]段外,所有的段都可以看作是一个共享资源。段名是该共享资源的名字,段里的参数是该共享资源的属性

在 [global]里面添加:

security 这是验证和登录方式,这里我们用了user(需要验证用户名和密码);验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;

[global]
security = user

我们添加一个可以共享的资源:

  1. path = 可以设置要共享的目录放在哪里;
  2. writeable 是否可写,这里我设置为可写;
  3. browseable 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable=no
[share]
      path = /var/www/html
      available = yes
      browseable = yes
      public = yes
      writable = yes

2.4 添加 Samba 用户

➜  sudo touch /etc/samba/smbpasswd
➜  sudo smbpasswd -a  *****

错误!!

我在这里添加了一个叫做 zhaoshuai 的账号,出现了一些问题(Failed to add  entry for User zhaoshuai):

解决!!

原因是 Samba 用户必须是在我们系统中存在的用户,所以我们需要在系统中添加一个用户(会提示输入两边密码):

➜  useradd  zhaoshuai
➜  smbpasswd -a  zhaoshuai

3、连接 Samba

在 Mac 任意一个地方,CMD + K,会出现“连接服务器”的页面(点击+号可以保存):

点击连接之后,应该会要求输入账号和密码(因为我们再上面配置中选择的安全级别是:user):

账号密码验证成功之后,会出现我们之前配置的共享资源的名字(share):

点击好,然后打开 finder,找到我们刚刚建立的 Samba 服务连接:

这样我们就可以随意去更改 share 里面的内容了,如果是修改代码,就用编辑器直接打开里面的“项目文件夹”就行~~ 

SSHFS 安装&使用

1、安装

安装 homebrew(ruby)

 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装 sshfs 的依赖 fuse

 brew install Caskroom/cask/osxfuse

安装 sshfs

 brew install homebrew/fuse/sshfs

或者去git下载:https://github.com/osxfuse/sshfs/releases

2、使用

将远程的目录挂载到本地:

  1. user 远程连接用户名
  2. hostname 远程连接的主机名
  3. remote_dir 远程目录
  4. local_dir 本地目录
sshfs -C -o reconnect user@hostname:remote_dir local_dir
例子:
sshfs -C -o reconnect root@118.190.176.35:/tmp ~/sshfs

我们可以看到文件管理器里面会出现我们建立的SSHFS连接:

打开这个图标,你就可以任意修改或者上传文件 & 可以修改服务器上的文件或者代码,然后会自动相互同步~~

是不是很爽!!!

搞起来!!!

转载请注明:碎念 » 【推荐】Samba & SSHFS 实时同步远程代码

喜欢 (3)or分享 (0)