9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

bash/zsh SSHでログインした時だけ実行する

Last updated at Posted at 2016-01-10

Ubuntuはログインしたときこんな情報が表示されてちょっといいなと思った。

Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-48-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Mon Jan  4 10:22:31 UTC 2016

  System load:  0.0               Processes:           96
  Usage of /:   15.1% of 7.74GB   Users logged in:     0
  Memory usage: 5%                IP address for eth0: 10.4.1.113
  Swap usage:   0%

  Graph this data and manage this system at:
    https://landscape.canonical.com/

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

これはupdate-motdという仕組みで動的にmotdを生成しているらしい。
同じことを他のディストロでもできないかと思って、とりあえずSSHでログインしたときのみ指定のコマンドを実行するように~/.profile(~/.zprofile)に書いてみた。

~/.profile
if [ -f /proc/$PPID/cmdline ]; then
    if [ "$(command cut -d : -f1 < "/proc/$PPID/cmdline")" = "sshd" ] && [[ $- == *i* ]]; then
        echo
        command df -h | command awk '/^\/dev/ {gsub(/.[890][0-9]%/, "\x1b[1;31m&\x1b[0m"); print;}'
        echo
        command free -m
    fi
fi
  • 親プロセスがsshdであるか、インタラクティブシェルであるかを判定している。
  • aliasの影響を受けないようにcommandを使っている。
  • ディスク使用量が80~100%なら赤字で強調表示するようにしている。
9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?