批量下载SRR数据

https://www.jianshu.com/p/f16ed4c79739

 nohup ./lnd cp -d oss://CP2018091204136/H101SC20070420/KY_kehu_JK/X101SC20070420-ZSC20070420-Z01-J001/2.cleandata  ../ &

md5sum -c 校检码文件

nohup  prefetch --option-file SRR_Acc_List.txt  &

#关闭终端后再进入,怎么后台找不到?

(rna) [zhaong@cluster ~]$ ps ux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
1029       791  1.4  0.0  21852  3648 ?        S    Jun17  10:02 prefetch --option-file SRR_Acc_List.txt
1029      1463  0.0  0.0  99976  1800 ?        S    09:26   0:00 sshd: zhangyong@pts/2
1029      1464  0.0  0.0 110664  2140 pts/2    Ss   09:26   0:00 -bash
1029      2727  0.0  0.0  99980  1900 ?        S    09:28   0:00 sshd: zhangyong@notty
1029      2728  0.0  0.0  57300  2396 ?        Ss   09:28   0:00 /usr/libexec/openssh/sftp-server
1029      3476  0.0  0.0 110220  1116 pts/2    R+   09:32   0:00 ps ux
1029     19766  1.4  0.0  21880  3348 ?        S    09:07   0:21 prefetch --option-file List.txt

 

$ wget -i filename.txt
此命令常用于批量下载的情形,把所有需要下载文件的地址放到 filename.txt 中,然后 wget 就会自动为你下载所有文件了。

$ wget -c http://example.com/really-big-file.iso
这里所指定的 -c 选项的作用为断点续传。


实践证明,wget下载sra数据是有风险的!!!中间有断点的话会造成数据不完整,以防万一,一定要加上自动断点续传参数-c!
ftp='ftp://ftp.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByRun/sra/SRR'

mkdir sra  # make a output directory
cat SRR_Acc_List.txt |  while read i
do
       SRR=$(echo ${i:0:6}) 
       wget -c -t 0 -P ./sra ${ftp}/${SRR}/${i}/*
done
参数说明:
-c 自动断点续传,一定要加!否则数据会有不完整的情况
-t 配合-c参数,设置为0表示连接失败后无限次重新尝试,直到成功为止
-P 表示把数据下载到指定文件夹下

 

 

 

有两种方式:

1. command & : 后台运行,你关掉终端会停止运行
2. nohup command & :后台运行,你关掉终端也会继续运行

一、 简介 
Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务。因此在任务管理上也有别具特色的管理思想。
我们知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务。而不能让程序在前台后台之间切换。而 Linux提供了fg和bg命令,让你轻松调度正在运行的任务。假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用Ctrl-Z ,挂起这个程序,然后可以看到系统提示:
[1]+ Stopped /root/bin/rsync.sh
然后我们可以把程序调度到后台执行:(bg 后面的数字为作业号)
#bg 1
[1]+ /root/bin/rsync.sh &
用 jobs 命令查看正在运行的任务:
#jobs
[1]+ Running /root/bin/rsync.sh &
如果想把它调回到前台运行,可以用
#fg 1
/root/bin/rsync.sh
这样,你在控制台上就只能等待这个任务完成了。

& 将指令丢到后台中去执行
[ctrl]+z 將前台任务丟到后台中暂停
jobs 查看后台的工作状态
fg %jobnumber 将后台的任务拿到前台来处理
bg %jobnumber 将任务放到后台中去处理
kill 管理后台的任务

 

# tar -zxf httpd-2.2.17.tar.gz                             ## 解压 httpd 压缩包
^Z                                                         ## 按下 Ctrl+Z 组合键暂停
[1]+  Stopped                 tar -zxf httpd-2.2.17.tar.gz

# bg                                                       ## 输入 bg 命令,继续在后台运行
[1]+ tar -zxf httpd-2.2.17.tar.gz &

# jobs                                                     ## 查看所有的后台任务
[1]+  Done                    tar -zxf httpd-2.2.17.tar.gz

 

(rna) [zhangyong@cluster sratools]$ top -u zhangyong
top - 09:15:04 up 57 days, 5 min,  6 users,  load average: 0.36, 0.24, 0.17
Tasks: 349 total,   1 running, 347 sleeping,   1 stopped,   0 zombie
Cpu(s):  2.9%us,  5.1%sy,  0.0%ni, 91.8%id,  0.1%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:  66061060k total, 60165576k used,  5895484k free,   248920k buffers
Swap:  1023992k total,  1023676k used,      316k free, 57631516k cached
                                                                                                                          PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
19766 zhangyon  20   0 21880 3348 1844 S  2.0  0.0   0:06.73 prefetch
  791 zhayon  20   0 21852 3648 2052 S  1.3  0.0   9:48.25 prefetch
25723 zhgyon  20   0 15176 1468  952 R  0.3  0.0   0:00.06 top
10072 zhyon  20   0 99976 1828  832 S  0.0  0.0   0:00.05 sshd
10073 zhayon  20   0  108m 2148 1456 S  0.0  0.0   0:00.18 bash
20657 zhayon  20   0 99980 1876  892 S  0.0  0.0   0:00.00 sshd
20696 zhyon  20   0 57296 2312 1680 S  0.0  0.0   0:00.06 sftp-server

成功提交该命令之后,系统给出了它的进程号7832。 对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将停止的作业放到后台运行,例如对正在前台执行的tesh.sh使用ctrl+z挂起它:
$ ./test.sh
[1]+ Stopped ./test.sh

$ bg %1
[1]+ ./test.sh &

$ jobs -l
[1]+ 22794 Running ./test.sh &

 

任务状态

top命令与ps命令可以用于查看Linux系统运行状态,类似于windows系统的任务管理器,其中top用于动态显示,ps用于静态显示,htop是高级版的top,显示结果更加人性化。

top  #press "q" to exit 查看系统运行状态   
top -b  # press "Ctrl +C" to exit   
top -c   
top -u "yourname"   
htop htop查看系统运行状态  
ps  静态查看系统运行   
ps -fx   
ps -aux  

 

任务控制

ctrl+C :终止任务
ctrl+D :退出任务,相当于exit
ctrl+Z :暂停任务
pidof :获取进程ID
kill -9 "process number"  杀死进程   
killall :杀死全部进程  

后台执行

& :在语句结尾添加,表示后台运行
jobs :查看后台进程 
fg :将任务放后台程序   
bg :将后天任务放到前台   
#fg,bg可以接数字,表示操作第几个任务
time:对任务进行计时统计
nohup:不挂起运行程序,关闭登录窗口后程序继续运行  
disown:忘记使用nohup之后,将后台任务转换为nohup

定时任务

at :一次性定时任务
crontab:周期性定时任务

使用案例

#利用flye拼接nanopore测序数据
#使用time命令进行计时
echo "time flye --nano-raw SRX5299446.sra.fastq -o flye -t 24 -g 5m >flye.log 2>flye.err" >flye.sh
#运行脚本,前面加nohup,后面接&
nohup sh flye.sh &
#利用jobs查看任务
jobs
#利用top监控程序是否运行
top -u $USER

你可能感兴趣的:(Linux)