因为ascp命令是安装在小环境中,而且key_ssh=/home/data/vip13t42/miniconda3/envs/rna/etc/asperaweb_id_dsa.openssh 这个ascp密钥的变量是即时的,关闭xshell就没了。因此,先写个wx.sh脚本,在脚本中启动小环境,并运行批量下载fastq文件命令。
#!/bin/bash#先初始化conda# >>> conda initialize >>># !! Contents within this block are managed by 'conda init' !!__conda_setup="$('/home/data/vip13t42/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"if [ $? -eq 0 ]; theneval "$__conda_setup"elseif [ -f "/home/data/vip13t42/miniconda3/etc/profile.d/conda.sh" ]; then. "/home/data/vip13t42/miniconda3/etc/profile.d/conda.sh"elseexport PATH="/home/data/vip13t42/miniconda3/bin:$PATH"fifiunset __conda_setup# <<< conda initialize <<<# 启动小环境,因为ascp命令是安装在小环境中conda activate rna# temp.url存放着fastq文件下载地址列表key_ssh=/home/data/vip13t42/miniconda3/envs/rna/etc/asperaweb_id_dsa.opensshcat temp.url | while read iddoascp -k 1 -QT -l 300m -P33001 -i $key_ssh era-fasp@${id} ./done
然后通过nohup命令来挂载到后台。
nohup wx.sh &
jobs查看下
成功挂载到后台运行。
——————————————————
更新:
生信技能树卖萌哥老师说也可以这样:
key_ssh=/home/data/vip13t42/miniconda3/envs/rna/etc/asperaweb_id_dsa.opensshcat temp.url | while read iddoascp -k 1 -QT -l 300m -P33001 -i $key_ssh era-fasp@${id} ./done
通过Ctrl+z暂停程序,然后运行以下命令也可以挂载到后台,效果等同nohup。
bg %1disown %1
亲测有效。
