空白云服务器的一些生物信息学设置

再怎么强调生物信息学数据分析学习过程的计算机基础知识的打磨都不为过,我把它粗略的分成基于R语言的统计可视化,以及基于Linux的NGS数据处理

之前我们生信菜鸟团已经发布的:购买入门级服务器免费送Linux直播培训服务 ,提到了可以购置一款《1核2G服务器》标准品,既可以练习Linux命令,也可以打搭建一个博客:五分钟搞定你的个人博客,还可以做图床,或者隧道。但是,这个超级便宜的服务器真的是配置只能做入门Linux命令的练习,根本就没办法做NGS数据分析。

我这里拿腾讯云服务器举例,首先查看自己购买的云主机:https://console.cloud.tencent.com/cvm/index

查看服务器配置

df -h 
free -g

挂载云硬盘

首先购买:

/dev/vda1 * 2048 104857566 104855519 50G 83 Linux 
/dev/vdb1 2048 2097151999 2097149952 1000G 83 Linux
/dev/vdc1 2048 1048575999 1048573952 500G 83 Linux

挂载购置的云硬盘

sudo fdisk -l
sudo fdisk /dev/vdb
# 按照界面的提示,依次输入“n”(新建分区)、“p”(新建扩展分区)、“1”(使用第1个主分区),两次回车(使用默认配置),输入“w”(保存分区表),开始分区。
sudo fdisk /dev/vdc

sudo fdisk -l
df -h
sudo mkfs.ext4 /dev/vdc1 
sudo mkfs.ext4 /dev/vdb1

sudo mkdir /data
sudo mkdir /project

sudo mount /dev/vdb1 /data/
sudo mount /dev/vdc1 /project/

还需要修改/etc/fstab文件

sudo vim /etc/fstab

然后在文件末尾添加下面内容,要注意盘号对应

/dev/vdb1 /data ext4 defaults 0 1 
/dev/vdc1 /project ext4 defaults 0 1

设置硬盘用户配额

  1. 安装quota
sudo apt install quota
  1. 文件系统启用quota
sudo fdisk -l
sudo mount -o remount,usrquota,grpquota /data 
sudo mount -o remount,usrquota,grpquota /project 
mount | grep /dev 
##/dev/vdd1 on /trainee2 type ext4 (rw,relatime,quota,usrquota,grpquota,data=ordered)
## 可以看到现在已经启用了quota

如果是自己的服务器,修改/etc/fstab文件

/dev/vdb1 /data ext4 defaults,usrquota,grpquota 0 0
/dev/vdc1 /project ext4 defaults,usrquota,grpquota 0 0

然后运行

sudo mount -o remount /data 
sudo mount -o remount /project
  1. 生成磁盘配额数据库
sudo quotacheck -mugf /data
sudo quotacheck -mugf /project 
## 在 trainee2 目录下会多出“aquota.group”,“aquota.user”两个文件
  1. 启用磁盘配额
sudo quotaon /dev/vdb1
sudo quotaon /dev/vdc1

## 关闭磁盘配额的命令
## sudo quotaoff -avgu
## 猜测之前错误就是因为运行了这个命令后没有重新开启
  1. 编辑磁盘配额文件
sudo adduser jmzeng
sudo edquota -u jmzeng
## 针对用户user1修改配置文件

对soft和hard列进行修改,超过soft设定数值,用户会收到提醒,最多使用的空间大小由hard设置,这里设置为50G~60G(NANO编辑器的退出和保存)

Disk quotas for user user1 (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sdb1 0 50000000 60000000 0 0 0
  1. 复制磁盘配额配置文件给多个用户
sudo edquota -p jmzeng user2
  1. 查看配额文件报告
sudo repquota -aug
## 显示用户配额:
sudo quota -uvs jmzeng
  1. 测试是否有效

切换用户:sudo su quotauser1

创建一个大文件:dd if=/dev/zero of=bigfile bs=1M count=5000

切换回主用户查看该用户的空间使用情况:sudo repquota -auvs

安装必备系统库及软件

管理员的特权

首先是库

sudo apt update
sudo apt install --fix-missing libcurl4-openssl-dev libxml2-dev libgdal-dev libssl-dev libglu1-mesa-dev libmagick++-dev libudunits2-dev

然后是软件

sudo apt update
sudo apt install -y net-tools
sudo apt install -y openssh-server
sudo apt install -y subversion scons libfuse-dev gcc git make 
sudo apt install -y samtools bcftools bwa ncbi-blast+ sra-toolkit

配置网络服务(博客或者论坛)

接着参考:https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04 设置好ngix的网站服务

sudo apt-get update
sudo apt install -y vim tree nginx htop cmake 
sudo apt install -y nginx curl
curl -4 icanhazip.com

接着参考:https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04 设置好mysql和php服务

sudo ufw allow 'Nginx HTTP'
sudo ufw status
sudo apt-get -f install mysql-server
## 保证密码统一性
mysql_secure_installation
sudo apt-get -f install php-fpm php-mysql
sudo vi /etc/php/7.0/fpm/php.ini ## change cgi.fix_pathinfo=0
sudo systemctl restart php7.0-fpm
sudo vi /etc/nginx/sites-available/default

需要设置好 /var/www/html 文件夹权限,就是需要增加一个 www-data 的用户组,里面包含的用户都是可以访问的。

sudo chgrp -R www-data /var/www
#sudo usermod -a -G www-data jmzeng
sudo usermod -a -G www-data ubuntu
sudo chmod -R 2770 /var/www/html 
sudo usermod -a -G www-data jmzeng

配置R环境

使用root权限(系统管理员)安装最新版的R,我们的ubuntu是20,所以选择focal这个代号,然后是cran40,全部的代码如下:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
sudo add-apt-repository 'deb https://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu focal-cran40/'
sudo apt update
sudo apt install r-base

实际上还需要使用root权限(系统管理员)安装一些R包。

假如你的ubuntu是其它版本,自己修改:

这里我们使用root权限(系统管理员):sudo R

options()$repos 
options()$BioC_mirror
#options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
options(BioC_mirror="http://mirrors.tuna.tsinghua.edu.cn/bioconductor/")
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options()$repos 
options()$BioC_mirror

# https://bioconductor.org/packages/release/bioc/html/GEOquery.html
if (!requireNamespace("BiocManager", quietly = TRUE))
 install.packages("BiocManager")
BiocManager::install("KEGG.db",ask = F,update = F)

一般来说不会报错,然后继续安装更多的包:

BiocManager::install(c("GSEABase","GSVA","clusterProfiler" ),ask = F,update = F)
BiocManager::install(c("GEOquery","limma","impute" ),ask = F,update = F)
BiocManager::install(c("org.Hs.eg.db","hgu133plus2.db" ),ask = F,update = F)

options()$repos
install.packages('WGCNA')
install.packages(c("FactoMineR", "factoextra"))
install.packages(c("ggplot2", "pheatmap","ggpubr"))
library("FactoMineR")
library("factoextra")

library(GSEABase)
library(GSVA)
library(clusterProfiler)
library(ggplot2)
library(ggpubr)
library(hgu133plus2.db)
library(limma)
library(org.Hs.eg.db)
library(pheatmap)

BiocManager::install("ChAMP")

不得不说,有一些R包真的很难安装,搞了一个下午,比如ChAMP这个甲基化芯片数据处理包。

配置shiny权限和rsutdio的服务器

安装shiny和rsutdio的服务器,官网找到最新版咯

因为网络问题,直接从其它腾讯云服务器拷贝两个deb文件过来。

sudo apt-get install gdebi-core
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.3.1056-amd64.deb
sudo gdebi rstudio-server-1.3.1056-amd64.deb

如果要安装 shiny服务,首先需要相应的R包

library(shiny)
library(devtools)
library(ggplot2)
library(pheatmap)
library(ggpubr)
library(ggstatsplot)
library(airway)
library(DESeq2)
library(edgeR)
library(limma)
library(clusterProfiler)
# library之后均没有报错

library之后均没有报错

sudo systemctl restart shiny-server

可能需要经常重启,安装成功之后查看端口开放情况:netstat -tln

批量新建用户

在Ubuntu中,adduser更适合初级使用者,因为不用去记那些繁琐的参数选项,只要跟着系统的提示一步一步进行下去就行,缺点就是整 个创建过程比较复杂而漫长;

useradd比较适合有些高阶经验的使用者,往往一行命令加参数就能解决很多问题,所以创建起来十分方便。

https://www.cnblogs.com/xudong-bupt/archive/2013/03/13/2958043.html

http://blog.csdn.net/nyist327/article/details/50729743

首先需要新建一个组别来管理他们:sudo groupadd student

然后新建一个文本存放用户信息,比如:huaxi_users.txt

内容如下:

kzheng:kzheng6453
qyzhang:qyzhang53535
qhe:qhe2526

代码是:

# bash create_user.sh user.vip.batch2 /project/home batch2
cut -d":" -f 1 $1 |while read id;do
h=$2
g=$3
echo $id
sudo mkdir -p $h/$id
sudo useradd $id -d $h/$id
sudo chown -R $id $h/$id
sudo usermod -aG $g $id
sudo chgrp -R $g $h/$id
sudo usermod -s /bin/bash $id
sudo cp readme.txt $h/$id
sudo cp /home/ubuntu/.profile $h/$id
sudo cp /home/ubuntu/.bashrc $h/$id
sudo chown -R $id $h/$id
sudo edquota -p jmzeng $id
done
# sudo chpasswd < passwd.txt
:'
Welcome to Biotrainee() !
This is your personal account in our Cloud. 
Have a fun with it.
Please feel free to contact with me( email to jmzeng1314@163.com )
(http://www.biotrainee.com/thread-1376-1-1.html)
'

批量新建用户可以批量修改密码:sudo chpasswd < huaxi_users.txt

后来我把这个代码又包装了一下:

for i in Aug{001..600};do sudo userdel -r $i;done
for i in Aug{001..600};do sudo groupdel $i;done

echo vip{001..600}|tr ' ' '\n'|while read id;do echo ${id}:pd$(($RANDOM%50000+1)) ;done > user.vip.batch1
sudo groupadd batch1 
bash create_user.sh user.vip.batch1 /data/home batch1
sudo chpasswd < user.vip.batch1

echo vip{601..999}|tr ' ' '\n'|while read id;do echo ${id}:pd$(($RANDOM%50000+1)) ;done > user.vip.batch2
sudo groupadd batch2
bash create_user.sh user.vip.batch2 /project/home batch2
sudo chpasswd < user.vip.batch2

## 显示用户配额:
sudo quota -uvs jmzeng

我多么希望可以给10万粉丝人手一个服务器账号,但是哪怕是我可以在代码层面做到,这个服务器的性能也支撑不住!现在建立了1000个账号,就已经很勉强了。

文末友情推荐

要想真正入门生物信息学建议务必购买全套书籍,一点一滴攻克计算机基础知识,书单在:什么,生信入门全套书籍仅需160
如果大家没有时间自行慢慢摸索着学习,可以考虑我们生信技能树官方举办的学习班:

如果你课题涉及到转录组,欢迎添加一对一客服:详见:你还在花三五万做一个单细胞转录组吗?

号外:生信技能树知识整理实习生招募,长期招募,也可以简单参与软件测评笔记撰写,开启你的分享人生!另外,:绝大部分生信技能树粉丝都没有机会加我微信,已经多次满了5000好友,所以我开通了一个微信好友,前100名添加我,仅需150元即可,3折优惠期机会不容错过哈。我的微信小号二维码在:0元,10小时教学视频直播《跟着百度李彦宏学习肿瘤基因组测序数据分析》

Comments are closed.