服务器Jupyter Notebook和Samba的安装及部署

——by不是杀杀
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成(来自百度百科),简单来说它可以实现服务器端(Linux)与Windows端之间的文件共享。而Jupyter Notebook是大家熟悉的交互式笔记本,我认为是一个非常方便的开发工具。通过Samba将Jupyter的工作目录设置为Windows可访问的共享目录,将大大提高工作效率。正如如下图所示,可以在Windows中非常方便地读取、上传已经修改Jupyter工作目录下的文件。


image.png

image.png

一、Samba

其安装及部署需要root权限

1. 准备工作

### 关闭防火墙
systemctl stop firewalld.service
### 关闭SeLinux
#### 查看SeLinux状态
sestatus
setenforce 0
sestatus

2. 安装

### 安装samba
yum install samba
### 查看安装状态
rpm -qa|grep samba

Samba服务器安装完毕,会生成配置文件目录/etc/samba,/etc/samba/smb.conf是samba的核心配置文件

### 查看SMB服务状态
service smb status
### 启动SMB服务
systemctl start smb
### 设置开机自启
systemctl enable smb

3. samba配置

cd /etc/samba/  ##切换到Samba配置文件目录
mv smb.conf smb.conf.bak  ##备份
grep -v "#" smb.conf.bak > smb.conf  ##重新创建一个配置文件(除去注释的)
vim smb.conf  ##修改配置文件
[global]                   ##全局
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
        map to guest = Bad User   ##添加此项,开启匿名用户访问
[HLABshare]                   ##添加的share文件
        path=/home/share            ##路径
        public=yes              ##公共访问
        browseable=yes          ##能够访问
        writable=yes             ##写权限
        create mask=0644        ##设置权限
        directory mask=0755

path=/home/share需要共享的目录路径
samba可以用testparm命令来测试smb.conf配置档的合法性

mkdir /home/share   ##创建目录
chmod 755 /home/share  ##设置权限
systemctl restart smb.service  ##重启Samba服务

修改文件创建的默认权限

### 在[HLABshare]中加入以下配置
create mode = 0644
force create mode = 0644
directory mode = 0755
force directory mode = 0755

权限冲突问题
因为Jupyter是由A账户安装的,因此会发现在share文件夹中通过Jupyter生成的文件其权限是属于账户A的,而通过Samba访问的Windows用户在该文件夹下创建文件,由于配置文件中的map to guest = Bad User 设置,导致创建的文件是属于nobody账户的,因此会出现权限冲突的问题,当然这个问题如果严谨一些应该通过为每个Windows客户端访问的人创建账户等方法来解决,但是我还是选择了比较简单但是不够安全的做法:(其他解决方法欢迎评论区留言)

## 在配置中加入
# 在 [global] 放入以下内容
force user = 帐号
force group = 群组

其中账号和群组与安装Jupyter的账号一致。

二、Jupyter

1. 安装miniconda

# 创建一个目录用于放miniconda安装包
mkdir miniconda
# 下载miniconda
wget  https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh --no-check-certificate
# 安装
bash Miniconda3-latest-Linux-x86_64.sh
# 有提示选择输入yes
# 安装完之后需要重启客户端(把连接服务器的窗口关掉再打开)
# 换成清华源
conda  config  --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda  config  --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
conda config --set show_channel_urls yes
 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

2. 为jupyter创建一个conda的环境

# jupyter 是创建的环境名称
conda create -n jupyter
# 激活(进入)创建的环境
conda activate jupyter
# 退出当前环境
conda deactivate

3. 安装R内核及jupyter

# 安装R内核
conda install r-recommended r-irkernel
# 安装jupyter
conda install Jupyter
# 在R中连接jupyter
R -e 'IRkernel::installspec()'

4. 启动jupyter

# 指定IP和端口,其中IP为服务器的IP,端口为服务器开放的端口
jupyter notebook --no-browser --port 8888 --ip=172.16.0.xxx

以上运行方式,当断开端口时jupyter会被杀死,因此平常采用如下运行方式:

# 方法一:在tmux中启动
tmux 
# 进如不间断连接的端口
conda activate jupyter
jupyter notebook  /home/share --no-browser --port 8888 --ip=172.16.0.xxx
# 方法二:通过nohup &来后台运行
nohup jupyter notebook  /home/share --no-browser --port 8888 --ip=172.16.0.xxx &

Jupyter的其他配置

修改jupyter密码

# 生成jupyter配置文件
jupyter notebook --generate-config
# 将固定的密码转换成sha1加密
jupyter notebook password
# 两次输入要设置的密码
image.png

将sha1写到配置文件中

cat jupyter_notebook_config.json
# 复制password部分
# 修改配置文件
vim jupyter_notebook_config.py
# 在vim中搜索passwd
/password
image.png

将c.NotebookApp.password的注释去掉,保存配置文件后重启jupyter

指定工作目录

这里指定为上一步Samba设置的共享目录。

# 启动时指定目录
jupyter notebook [dir] --no-browser --port 8888 --ip=172.16.0.xxx
#如
jupyter notebook  /home/share --no-browser --port 8888 --ip=172.16.0.123
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容