我正在使用脚本开始 SLURM 作业,脚本必须根据它的位置工作,该位置是在脚本本身内部使用SCRIPT_LOCATION=$(realpath $0). 但是 SLURM 将脚本复制到slurmd文件夹并从那里开始工作,它搞砸了进一步的操作。
是否有任何选项可以在移动/复制之前获取用于 slurm 作业的脚本的位置?
脚本位于网络共享文件夹中/storage/software_folder/software_name/scripts/this_script.sh,它必须:
software_name文件夹software_name文件夹复制到本地文件夹/node_folder节点上/node_folder/software_name/scripts/launch.sh我的脚本是
#!/bin/bash
#SBATCH --nodes=1
#SBATCH --partition=my_partition_name
# getting location of software_name
SHARED_PATH=$(dirname $(dirname $(realpath $0)))
# separating the software_name from path
SOFTWARE_NAME=$(basename $SHARED_PATH)
# target location to copy project
LOCAL_SOFTWARE_FOLDER='/node_folder'
# corrected path for target
LOCAL_PATH=$LOCAL_SOFTWARE_FOLDER/$SOFTWARE_NAME
# Copying software folder from network storage to local
cp -r $SHARED_PATH $LOCAL_SOFTWARE_FOLDER
# running the …Run Code Online (Sandbox Code Playgroud) 我想使用 youtube-dl从youtube下载视频播放列表,以便进一步离线观看。有些视频有不可用的片段(但由于某种原因,通过浏览器观看时没有问题)。我想下载播放列表,但跳过缺少片段的视频。
我原来的运行是:
youtube-dl -if bestvideo+bestaudio PLEsfXFp6DpzTD1BD1aWNxS2Ep06vIkaeW
Run Code Online (Sandbox Code Playgroud)
但它在丢失片段的视频中“冻结”。
后来,在文档中我找到了这个选项选项 --abort-on-unavailable-fragment
但是下面的命令只是中止,当尝试下载片段需要 10 次重试时。
youtube-dl --abort-on-unavailable-fragment -if bestvideo+bestaudio PLEsfXFp6DpzTD1BD1aWNxS2Ep06vIkaeW
Run Code Online (Sandbox Code Playgroud)
我也找到了 parameter --skip-unavailable-fragments,但它只是跳过了不可用的片段并继续下载下一个片段。合并后会导致视频出现故障。
youtube-dl --skip-unavailable-fragments -if bestvideo+bestaudio PLEsfXFp6DpzTD1BD1aWNxS2Ep06vIkaeW
Run Code Online (Sandbox Code Playgroud)
是否有任何选项/参数可以下载整个播放列表,但是一旦有丢失片段的视频:跳过该视频并切换到播放列表中的下一个视频?