0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

QNAPでのシェル活用: QTSかどうかの判別方法とBusyBoxのエイリアス

Posted at

QNAPのOSであるQTS

Linuxとしてみた場合、Linux Kernel + BusyBox + Bash + いろいろ

なのでホームディレクトリーを他のLinux/Unix系OSと共有した場合は.profile, .bash_profileなどでの工夫が必要。

ディストロ判別方法

/etc/os-release
NAME="QTS"
VERSION="5.1.7 (20240520)"
ID=qts
PRETTY_NAME="QTS 5.1.7 (20240520)"
VERSION_ID="5.1.7"

上記を参考に次の様な感じで判別できる。

if [[ -f /etc/os-release ]]; then
    source /etc/os-release
    if [ $ID = "qts" ]; then
      echo "QNAP/QTS"
    fi
fi

BusyBox対応

上記に書いた通りBusyBoxなのだが、BusyBoxに内包されているコマンドへのリンクが貼られておらず、実行できないコマンドがある。例えば代表的なものだとlessなど。

$ which tail
/usr/bin/tail
$ ls -l /usr/bin/tail 
lrwxrwxrwx    1 admin    administ        12 Jul 15 04:03 /usr/bin/tail -> /bin/busybox*
$ ls -l /usr/bin/less
ls: /usr/bin/less: No such file or directory

シンボリックリンク等をroot権限でシステム上に行っても良いが、今後のバージョンアップでどうなるかわからないのでエイリアスで対応する。BusyBox内に組み込まれたコマンドはbusybox functionで実行可能。

~/.profile
if [[ -f /etc/os-release ]]; then
    source /etc/os-release
    if [ $ID = "qts" ]; then
      alias less='busybox less'
      alias fold='busybox fold'
      # 他にも色々必要なやつを
    fi
fi
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?