diff --git a/2025.04.13_custom_linux_command/goto_and_wdir_in_PBS.sh b/2025.04.13_custom_linux_command/goto_and_wdir_in_PBS.sh new file mode 100644 index 0000000..6b819dc --- /dev/null +++ b/2025.04.13_custom_linux_command/goto_and_wdir_in_PBS.sh @@ -0,0 +1,15 @@ +goto() { + # 获取作业的工作目录 + workdir=$(qstat -f "$1" | grep init_work_dir | awk '{print $3}') + # 检查路径是否存在 + if [ -d "$workdir" ]; then + cd "$workdir" && echo "已跳转到作业 $1 的工作目录: $workdir" + else + echo "错误:无法定位作业 $1 的工作目录" >&2 + return 1 + fi +} + +alias wdir="qstat -f | grep init_work_dir | awk '{print $3}'" + +alias wdir_jhguan="qstat -u jhguan -f | grep init_work_dir | awk '{print $3}'" diff --git a/2025.04.13_custom_linux_command/goto_and_wdir_in_Slurm.sh b/2025.04.13_custom_linux_command/goto_and_wdir_in_Slurm.sh new file mode 100644 index 0000000..3db380e --- /dev/null +++ b/2025.04.13_custom_linux_command/goto_and_wdir_in_Slurm.sh @@ -0,0 +1,13 @@ +goto() { + # 获取作业的工作目录 + workdir=$(scontrol show job "$1" | grep WorkDir | awk -F= '{print $2}') + # 检查路径是否存在 + if [ -d "$workdir" ]; then + cd "$workdir" && echo "已跳转到作业 $1 的工作目录: $workdir" + else + echo "错误:无法定位作业 $1 的工作目录" >&2 + return 1 + fi +} + +alias wdir="scontrol show job | grep WorkDir | awk -F= '{print $2}'" diff --git a/2025.04.13_custom_linux_command/mkpbs.sh b/2025.04.13_custom_linux_command/mkpbs.sh new file mode 100644 index 0000000..4d57323 --- /dev/null +++ b/2025.04.13_custom_linux_command/mkpbs.sh @@ -0,0 +1,23 @@ +mkpbs() { + # 参数说明:mkpbs [文件名] [作业名] [节点数] [核心/节点] [Python文件] + # 默认值 + FILENAME="${1:-task.sh}" # 第一个参数:文件名(默认 task.sh) + JOB_NAME="${2:-task}" # 第二个参数:作业名(默认 task) + NODES="${3:-1}" # 第三个参数:节点数(默认 1) + PPN="${4:-1}" # 第四个参数:每节点核心数(默认 1) + PYTHON_FILE="${5:-a.py}" # 第五个参数:Python 文件(默认 a.py) + + # 生成 PBS 脚本 + cat << EOF > "$FILENAME" +#!/bin/sh +#PBS -N $JOB_NAME +#PBS -l nodes=$NODES:ppn=$PPN +python $PYTHON_FILE +EOF + + echo "已生成文件:$FILENAME" + echo "├─ 作业名:$JOB_NAME" + echo "├─ 节点数:$NODES" + echo "├─ 核心/节点:$PPN" + echo "└─ 执行文件:$PYTHON_FILE" +} \ No newline at end of file