【SSH】本地ssh管理工具,SmartSLURM-v2.0

項目地址:https://github.com/CHanzyLazer/SmartSLURM
更新介紹
關(guān)于SmartSLURM的基本介紹可以參考我寫的這篇文章,這里只介紹更新的內(nèi)容。
支持保存到文件以及從文件中加載
ServerSSH和ServerSLURM支持使用save和load來將實例保存到文件以及從文件加載實例:
這樣對于超長時間的任務(wù),可以在本體提交完成任務(wù)后,將SLURM端保存到文件,等到需要的時候再從文件中讀取,然后檢測任務(wù)完成的情況。這里可以這樣做:
注意,對于SLURM,不建議直接使用save來保存實例,類似這樣:
因為這樣會在內(nèi)存中存在兩個SLURM的實例,擁有相同的任務(wù)隊列(如果在保存的時候存在任務(wù)隊列),因此會出現(xiàn)重復(fù)提交任務(wù)的問題,并且程序無法檢測到。
使用setMirror來保存則不會有這個問題,如果同樣使用:
程序會檢測到鏡像對應(yīng)的實例發(fā)生了變化,舊的實例會自動銷毀,同時提示你可能出現(xiàn)了重復(fù)提交,要求你在加載時先手動銷毀舊的實例。因此正確的寫法應(yīng)該是這樣:
支持捆綁任務(wù)提交和ssh操作
對于大部分ServerSSH提供的操作,例如文件上傳下載,提交指令等等,都支持增加“task_”前綴來獲得對應(yīng)的Task對象來延遲這個操作(類似C++中的仿函數(shù)思路):
而后在submitSrun等操作中,可以將這些Task對象附加上去,從而在執(zhí)行指令之前以及執(zhí)行完成后自動分別執(zhí)行這些task:
多個 task 可以通過 `mergeTask` 來合并:
詳細(xì)的各種接口的介紹可以去項目的README中查看:https://github.com/CHanzyLazer/SmartSLURM
或者有能力也可以直接看源碼。
下載
從 github 項目中下載:https://github.com/CHanzyLazer/SmartSLURM
或者直接下載:https://github.com/CHanzyLazer/SmartSLURM/releases/download/v2.0/smartSlurm.jar