搜索
查看: 1884|回复: 2

[linux] 构建本地bioc镜像,提高工作效率

[复制链接]

1

主题

3

帖子

78

积分

注册会员

Rank: 2

积分
78
发表于 2017-4-3 23:05:12 | 显示全部楼层 |阅读模式
本帖最后由 jianixrabbit 于 2017-4-3 23:12 编辑

Bioconductor包包一般体积都比较大,从官方网站提供的镜像现在容易断流、失败。国内有中科大的镜像可以使用。同时提供了rsync服务,如果反复有大量数据需要下载,比如我常常构建包含bioc包的docker镜像。可以选择自建一个本地镜像,大大提高链接速度和可靠性。
在linux环境建立镜像还是很简单的。

[Bash shell] 纯文本查看 复制代码
#!/usr/bin/env sh
while true
do
# 只在linux下用,排除macosx、windows的包数据
# 文档可以通过上网浏览器看,也不予同步,减少数据下载量
rsync -rtlzzv --delete --progress --exclude "macosx" \
    --exclude "windows" \
    --exclude "manuals" \
    --exclude "news" \
    --exclude "vignettes" \
    --exclude "*.html"  \
    rsync://rsync.mirrors.ustc.edu.cn/bioc/packages/3.4 /mnt/usb/home/mirrors/bioc/packages/

# 同步完成加一个时间戳
touch /mnt/usb/home/mirrors/bioc/`date +%Y_%m_%d_%T.timestamp`
#每30小时同步一次
sleep `expr 60 \* 60 \* 30`
done


脚本比较粗糙,是个死循环,直接跑不方便管理,交给supervisord来管理。 supervisor是一个老牌的进程管理工具,
可以精确控制进程行为,包括启动和停止多个进程,查看每个进程的状态等等。前很多生产环境下的服务器都在使用supervisor来管理守护进程。
supervisor的配置文件一般在/etc/supervisor.conf,跑上面的shell脚本在配置文件中增加如下内容即可。
[Bash shell] 纯文本查看 复制代码
[program:bioc]
command=/mnt/usb/home/mirrors/sync_app/lsync_bioc.sh
process_name=%(program_name)s ; process_name expr (default %(program_name)s)
numprocs=1                    ; number of processes copies to start (def 1)
directory=/tmp                ; directory to cwd to before exec (def no cwd)
;umask=022                     ; umask for process (default None)
;priority=999                  ; the relative start priority (default 999)
autostart=true                ; start at supervisord start (default: true)
;startsecs=1                   ; # of secs prog must stay up to be running (def. 1)
;startretries=3                ; max # of serial start failures when starting (default 3)
autorestart=true        ; when to restart if exited after running (def: unexpected)
;exitcodes=0,2                 ; 'expected' exit codes used with autorestart (default 0,2)
;stopsignal=QUIT               ; signal used to kill process (default TERM)
;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
;stopasgroup=false             ; send stop signal to the UNIX process group (default false)
;killasgroup=false             ; SIGKILL the UNIX process group (def false)
user=http                   ; setuid to this UNIX account to run the program
redirect_stderr=true          ; redirect proc stderr to stdout (default false)
;environment=A="1",B="2"       ; process environment additions (def no adds)
;serverurl=AUTO                ; override serverurl computation (childutils)


镜像还需要一个http服务器,我用lighttpd,比较轻量级,配置以下/etc/lighttpd/lighttpd.conf
supervisor的配置文件一般在/etc/supervisor.conf,跑上面的shell脚本在配置文件中增加如下内容即可。
主要就是把document-root设置到同步数据所在的目录/mnt/usb/home/mirrors,其他默认。
[Bash shell] 纯文本查看 复制代码
server.port             = 80
server.username         = "http"
server.groupname        = "http"
#server.document-root   = "/srv/http"
server.document-root    = "/mnt/usb/home/mirrors"
server.errorlog         = "/var/log/lighttpd/error.log"
dir-listing.activate    = "enable"
dir-listing.encoding    = "utf-8"
index-file.names        = ( "index.html" )
mimetype.assign         = (
                                ".html" => "text/html;charset=utf-8",
                                ".txt" => "text/plain;charset=utf-8",
                                ".css" => "text/css",
                                ".js" => "application/x-javascript",
                                ".jpg" => "image/jpeg",
                                ".jpeg" => "image/jpeg",
                                ".gif" => "image/gif",
                                ".png" => "image/png",
                                "" => "application/octet-stream"
                        )





启动服务
[Bash shell] 纯文本查看 复制代码
systemctl start supervisord.service
systemctl start lighttpd.service

开机运行
[Bash shell] 纯文本查看 复制代码
systemctl enable supervisord.service
systemctl enable lighttpd.service

最后别忘了没安装rsync的要安装一个。
数据同步完成就可以开始使用了,大概需要90G的存储空间。
有需要本地R的仓库,linux发行版的软件仓库也可以如法炮制。
访问http://ip/bioc,感受本地镜像的速度和可靠性吧。









上一篇:用R的XML包来解析DOM或者XML格式数据
下一篇:R有专门的转录因子工具包吗
回复

使用道具 举报

1

主题

3

帖子

78

积分

注册会员

Rank: 2

积分
78
 楼主| 发表于 2017-4-4 11:13:50 | 显示全部楼层


下载包包就是内网的速度了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

5

主题

22

帖子

172

积分

注册会员

Rank: 2

积分
172
发表于 2017-4-4 15:07:28 | 显示全部楼层
好贴!手工点个赞。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-8-22 22:31 , Processed in 0.034700 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.