有时候在服务器递交了一个或多个任务,然后把电脑关了,但是又想任务运行完后尽快知道。
这就可以用到mail命令给自己发邮件,首先在递交任务时指定特定的任命名标签flag
,然后使用qstat
命令去监测这个flag是否存在。如果存在则继续监测,如果不存在,则说明已经完成,给自己发个邮件提醒。
在.bashrc
里面定义函数实现这个功能:
function remind {
if [ ! $1 ];then
echo " Error: Please give a job name."
return
fi
jobNames=$(qstat -r | grep 'Full jobname:' | awk '{print $3}')
check=$(echo $jobNames | grep "$1")
if [ -z "$check" ];then
echo " Error: Job not exiests."
return
fi
flag=$1
while true
do
jobNames=$(qstat -r | grep 'Full jobname:' | awk '{print $3}')
check=$(echo $jobNames | grep "${flag}")
if [ -z "$check" ];then
echo 'Your job' $flag 'has finished.' | mail -s 'Job Finish Notice' jhaowong1998@sina.com
return
fi
sleep 10
done
}
然后打开一个终端就可以直接用了。
remind yyyds &