空白云服务器的一些生物信息学设置
再怎么强调生物信息学数据分析学习过程的计算机基础知识的打磨都不为过,我把它粗略的分成基于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 -lsudo fdisk /dev/vdb# 按照界面的提示,依次输入“n”(新建分区)、“p”(新建扩展分区)、“1”(使用第1个主分区),两次回车(使用默认配置),输入“w”(保存分区表),开始分区。sudo fdisk /dev/vdc
sudo fdisk -ldf -hsudo mkfs.ext4 /dev/vdc1 sudo mkfs.ext4 /dev/vdb1
sudo mkdir /datasudo mkdir /project
sudo mount /dev/vdb1 /data/sudo mount /dev/vdc1 /project/还需要修改**/etc/fstab**文件
sudo vim /etc/fstab然后在文件末尾添加下面内容,要注意盘号对应
/dev/vdb1 /dataext4defaults01 /dev/vdc1 /projectext4defaults01设置硬盘用户配额
安装quota
sudo apt install quota文件系统启用quota
sudo fdisk -lsudo 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 /datasudo mount -o remount /project
生成磁盘配额数据库
sudo quotacheck -mugf /datasudo quotacheck -mugf /project ## 在 trainee2 目录下会多出“aquota.group”,“aquota.user”两个文件启用磁盘配额
sudo quotaon /dev/vdb1sudo quotaon /dev/vdc1
## 关闭磁盘配额的命令## sudo quotaoff -avgu## 猜测之前错误就是因为运行了这个命令后没有重新开启编辑磁盘配额文件
sudo adduser jmzengsudo 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复制磁盘配额配置文件给多个用户
sudo edquota -p jmzeng user2查看配额文件报告
sudo repquota -aug## 显示用户配额:sudo quota -uvs jmzeng测试是否有效
切换用户:sudo su quotauser1
创建一个大文件:dd if=/dev/zero of=bigfile bs=1M count=5000
切换回主用户查看该用户的空间使用情况:sudo repquota -auvs
安装必备系统库及软件
管理员的特权
首先是库
sudo apt updatesudo apt install --fix-missing libcurl4-openssl-dev libxml2-dev libgdal-dev libssl-dev libglu1-mesa-dev libmagick++-dev libudunits2-dev然后是软件
sudo apt updatesudo apt install -y net-toolssudo apt install -y openssh-serversudo 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 updatesudo apt install -y vim tree nginx htop cmake sudo apt install -y nginx curlcurl -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 statussudo apt-get -f install mysql-server## 保证密码统一性mysql_secure_installationsudo apt-get -f install php-fpm php-mysqlsudo vi /etc/php/7.0/fpm/php.ini ## change cgi.fix_pathinfo=0sudo systemctl restart php7.0-fpmsudo vi /etc/nginx/sites-available/default需要设置好 /var/www/html 文件夹权限,就是需要增加一个 www-data 的用户组,里面包含的用户都是可以访问的。
sudo chgrp -R www-data /var/www#sudo usermod -a -G www-data jmzengsudo usermod -a -G www-data ubuntusudo 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 E298A3A825C0D65DFD57CBB651716619E084DAB9sudo add-apt-repository 'deb https://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu focal-cran40/'sudo apt updatesudo apt install r-base实际上还需要使用root权限(系统管理员)安装一些R包。
假如你的ubuntu是其它版本,自己修改:
# 18.04,deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/ # 16.04, deb https://cloud.r-project.org/bin/linux/ubuntu xenial-cran35/ # 14.04,deb https://cloud.r-project.org/bin/linux/ubuntu trusty-cran35/
这里我们使用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.htmlif (!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()$reposinstall.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的服务器,官网找到最新版咯
https://www.rstudio.com/products/rstudio/download-server/ https://www.rstudio.com/products/shiny/shiny-server/
因为网络问题,直接从其它腾讯云服务器拷贝两个deb文件过来。
sudo apt-get install gdebi-corewget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.3.1056-amd64.debsudo 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:kzheng6453qyzhang:qyzhang53535qhe:qhe2526代码是:
# bash create_user.sh user.vip.batch2 /project/home batch2cut -d":" -f 1 $1 |while read id;doh=$2g=$3echo $idsudo mkdir -p $h/$idsudo useradd $id -d $h/$idsudo chown -R $id $h/$idsudo usermod -aG $g $idsudo chgrp -R $g $h/$idsudo usermod -s /bin/bash $idsudo cp readme.txt $h/$idsudo cp /home/ubuntu/.profile $h/$idsudo cp /home/ubuntu/.bashrc $h/$idsudo chown -R $id $h/$idsudo edquota -p jmzeng $iddone# 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;donefor 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.batch1sudo groupadd batch1 bash create_user.sh user.vip.batch1 /data/home batch1sudo chpasswd < user.vip.batch1
echo vip{601..999}|tr ' ' '\n'|while read id;do echo ${id}:pd$(($RANDOM%50000+1)) ;done > user.vip.batch2sudo groupadd batch2bash create_user.sh user.vip.batch2 /project/home batch2sudo chpasswd < user.vip.batch2
## 显示用户配额:sudo quota -uvs jmzeng