
發(fā)布
注冊(cè)
/
登錄linux腳本的案例
使用slurm腳本在Linux服務(wù)器上提交LS-Dyna作業(yè)
slurm是linux集群上的資源調(diào)度軟件,用戶可以使用slurm申請(qǐng)計(jì)算資源、提交作業(yè)文件和啟動(dòng)計(jì)算程序。下面是使用ls-dyna smp求解器的slurm腳本。
#!/bin/bash
#SBATCH --job-name=lsdyna_smp
#SBATCH --output=lsdyna_smp.out
#SBATCH --error=lsdyna_smp.out
#SBATCH --mail-type=end
#SBATCH --mail-user=***@qq.com
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=40
echo `date`
echo `hostname`
# 輸入作業(yè)文件路徑和名稱==========================================
workdir=/***/***/***
input=***.k
# 提前創(chuàng)建work文件夾存放計(jì)算結(jié)果====================================
cd $workdir
cp -p $input ./work
cd ./work
# =========================================================
export LSTC_MEMORY=auto
lsdyna i=$input ncpu=$SLURM_CPUS
echo `date`
ls-dyna的smp求解器在cpu核心超過8個(gè)后計(jì)算效率提升很小,推薦使用mpp求解器,下個(gè)帖子再講。
展開 技術(shù)帖——Alpine Linux使用入門
Alpine Linux是一種基于musl和BusyBox的Linux 發(fā)行版,專為安全性、簡(jiǎn)單性和資源效率而設(shè)計(jì)。體積非常小巧,適合用來做Docker鏡像。xiaoz最近在為CCAA/Zdir打包容器鏡像的時(shí)候了解到了Alpine Linux,麻雀雖小但五臟俱全,簡(jiǎn)直不要太方便。
Docker使用Alpine Linux
使用命令docker run -it alpine /bin/sh可運(yùn)行Alpine Linux,由于Alpine Linux沒有內(nèi)置bash,所以這里使用的sh作為偽終端,在為Alpine Linux編寫shell腳本的時(shí)候也需要注意,使用sh而不是bash
Alpine Linux鏡像非常小巧,不到6M的大小,所以特別適合容器打包。
Alpine Linux軟件管理
Alpine Linux使用apk指令來管理軟件,類似CentOS的yum或Debian的apt-get,首次使用建議用apk update更新下軟件,以免無法正常使用。
展開 用jiacrontab搭建可視化的定時(shí)任務(wù)
如果您使用過Windows計(jì)劃任務(wù)或Linux的crontab,那么對(duì)“定時(shí)任務(wù)”這個(gè)名詞可能并不陌生。簡(jiǎn)言之就是在設(shè)定好的時(shí)間去執(zhí)行一個(gè)任務(wù)或者根據(jù)條件循環(huán)的執(zhí)行一個(gè)或多個(gè)任務(wù)。Linux下的crontab需要通過命令行操作,有了jiacrontab就可以通過WEB界面來創(chuàng)建計(jì)劃任務(wù),比直接使用crontab簡(jiǎn)單很多。
jiacrontab主要功能
允許設(shè)置每個(gè)腳本的超時(shí)時(shí)間,超時(shí)操作可選擇郵件通知管理者,或強(qiáng)殺腳本進(jìn)程。
允許設(shè)置腳本的最大并發(fā)數(shù)。
一臺(tái)server管理多個(gè)client。
每個(gè)腳本都可在server端靈活配置,如測(cè)試腳本運(yùn)行,查看日志,強(qiáng)殺進(jìn)程,停止定時(shí)...。
允許添加腳本依賴(支持跨服務(wù)器),依賴腳本提供同步和異步的執(zhí)行模式。
友好的web界面,方便用戶操作。
腳本出錯(cuò)時(shí)可選擇郵箱通知多人。
支持常駐任務(wù),任務(wù)失敗后可配置自動(dòng)重啟。
支持管道操作。
運(yùn)行原理
jiacrontab由server,client兩部分構(gòu)成,兩者完全獨(dú)立通過rpc通信。
server:向用戶提供可視化界面,調(diào)度多個(gè)client。
client:實(shí)現(xiàn)定時(shí)邏輯,隔離用戶腳本,將client布置于多臺(tái)服務(wù)器上可由server統(tǒng)一管理。 每個(gè)腳本的定時(shí)格式完全兼容linux本身的crontab腳本配置格式。
Linux安裝jiacrontab
jiacrontab使用golang開發(fā),作者已經(jīng)提供編譯好的二進(jìn)制包,直接下載解壓使用,非常方便。
展開