hpcstat 扩展功能
jykang@hpc.xmu.edu.cn
是许多人共用了一个账户(尽管是使用不同密钥认证的)。
这导致所有基于 linux 账户的工具都只能把这些人当作同一个人来对待,
许多功能都无法实现(例如,区分现在登陆的是谁,分用户统计核时,等)。
原则上来说,这个问题是没法彻底解决的。但是康老师又要求我去尽量解决这个问题(例如,统计每个人的核时、每个人登陆的时间等)。
因此我写了一个程序(起名叫 hpcstat
)来尽量解决这些问题。
在解决掉这些棘手的问题之后,我也顺便加了一些额外的功能(列在下面)来方便我自己的使用。 如果你有需要,也可以使用。
TERM
变量来实现。
如果 TERM
变量的格式设置得不正确,PuTTY 登陆后一些程序会无法正常工作(但也不会造成更严重的问题),
因此尝试时应该仔细且小心,并且在尝试之前记下原来的 TERM
变量以便出错后恢复。
设置子账户
一个老师拿到密钥后,可能会将它分发给多个不同的学生。
如果希望区分不同学生(统计不同学生的使用情况,或者给不同学生设置不同的环境),
可以修改 TERM
变量,加上 hpcstat_subaccount:your_name:
前缀,
以此来进一步区分使用同一个密钥的不同用户。
对于 PuTTY 来说,TERM
变量在 Connection -> Data -> Ternimal-type string 中修改。
例如,如果原本的 TERM
变量是 xterm
,那么修改后的 TERM
变量可以是 hpcstat_subaccount:chn:xterm
。
TERM
变量只在交互式登陆时有效,因此无法在 WinSCP 中使用。
如果设置了这个参数,那么会额外统计不同子账户的使用情况(登陆次数、投递的任务、占用的核时,等)。
是否设置这个参数都不影响按密钥统计的功能(即,按照密钥统计的核时,是所有使用这个密钥的用户的总和,无论是否设置了这个参数)。
如果有需要(例如,希望为某个子账户设置特别的环境,同时又不希望影响到他人),也可以做到(通过测试 HPCSTAT_SUBACCOUNT
环境变量)。
子账户的统计结果仅供参考,这个统计结果显然很容易造假 (如果 A 和 B 都使用同一个密钥登陆,那么显然 B 可以在 TERM 中填入 A 的名字以假装自己是 A,把自己用的核时都算到 A 头上)。
PuTTY 登陆时自动跳转:
如果您希望在登陆时自动跳转到自己的目录下,可以在 TERM
中再增加以下前缀:chn_cd:your_path:
。
例如,将 TERM
变量修改为 chn_cd:linwei/chn:xterm
,那么使用 PuTTY 登陆后会自动跳转到 linwei/chn
目录下。
如果同时使用了 hpcstat_subaccount
和 chn_cd
,那么 hpcstat_subaccount
必须在 chn_cd
之后,
例如 chn_cd:linwei/chn:hpcstat_subaccount:chn:xterm
。
任务进度微信通知:
用微信打开下面的链接:
https://wxpusher.zjiecode.com/wxuser/?type=1&id=75864#/follow
您应该会被引导去关注一个公众号(WxPusher 消息推送平台)。关注这个公众号之后会收到一条包含 UID 的消息。 然后把下面的信息发给我:
- 您的 UID
- 您使用的密钥的指纹(用 PuTTY 登陆时会提示)
- 如果使用了子账户(在
TERM
中设置了hpcstat_subaccount
),还需要告诉我您设置的子账户名
之后您投递的任务有新进度(例如,开始运行、运行结束)时就会通过这个公众号收到通知。
需要注意的是,这个 UID 会被明文写到 jykang 上的文件里。 也就是说存在这样的风险:有权限登陆 jykang 的人都有权限通过这个公众号给您发消息。