コンテンツへスキップ

容量を使いすぎているアカウントを整理した後、
whmのアカウントリストを確認すると整理した容量に反映されていなかった。
いつもなら下記コマンドで反映してからrepquota -a で治っていたけど
今回は治らなかった。

/usr/local/cpanel/scripts/fixquotas

問題はキャッシュ

cPanelに問い合わせると
mailmanのキャッシュの有効期間は最大 30 日間のようで、Mailman のアーカイブを手動で調整しても何もクリアされません。そのファイルを削除して再生成すると、cPanel は Mailman のディスク使用量に対してより適切なサイズを報告するようになりました。


とのことなので、下記ディレクトリ以下に各アカウントのメーリングリストのキャッシュファイルがあることを確認。

/var/cpanel/mailman/diskusage_cache

該当のファイル名を変更等してから以下コマンド実行

/usr/local/cpanel/scripts/update_mailman_cache


誰かにcpコマンドの使い方の練習環境を用意するためにとりあえず
とあるサーバー内で勉強用ディレクトリをつくる。

一人ならそれでいいけど複数人に対応する場合、人数分のディレクトリをこちらが用意するのは手間なので
スクリプトを書いてみた。

#!/bin/bash
count=`find /root/study/cp/  -maxdepth 1 -name "player*" |wc -l`

if [ "$count" -eq 0 ]; then
  echo "ディレクトリ名 "player"を作成します"
  mkdir player
  cd ./player
  mkdir cp1 cp2
  cd ./cp1
  touch test{1..10}
  cd ../
  echo rm -rf cp* > reset.sh
  echo mkdir cp1 cp2 >> reset.sh
  echo cd ./cp1  >> reset.sh
  echo 'touch test{1..10}' >> reset.sh
  chmod 700 reset.sh
else
  echo "ディレクトリ名 "player"`expr $count + 1`を作成します"
  mkdir player`expr $count + 1`
  cd ./player`expr $count + 1`
  mkdir cp1 cp2
  cd ./cp1
  touch test{1..10}
  cd ../
  echo rm -rf cp* > reset.sh
  echo mkdir cp1 cp2 >> reset.sh
  echo cd ./cp1  >> reset.sh
  echo 'touch test{1..10}' >> reset.sh
  chmod 700 reset.sh
fi

挑戦したことはスクリプト内でディレクトリ作ったり移動したりファイルを作ったりすること。ほぼ全部だな。
練習中に何度も失敗してもいいようにreset.shを用意してみた。
echoで一行ずつファイルに内容を入れたけど、もっとスマートにやる方法があるなら知りたい。

その他
gitを触ってみてcui上で今回のスクリプトをgithubに
pushしてみたけどまだ慣れてないからちょくちょくgitを触ってみたい。

追記 6月7日
記述に似ている部分があったので関数を作ってみた。よりスマート

#!/bin/bash
count=`find /root/study/cp/  -maxdepth 1 -name "player*" |wc -l`
mkreset (){
     mkdir ${1}1 ${1}2
      cd ./${1}1
      touch test{1..10}
      cd ../
      echo rm -rf ${1}* > reset.sh
      echo mkdir ${1}1 ${1}2 >> reset.sh
      echo cd ./${1}1  >> reset.sh
      echo 'touch test{1..10}' >> reset.sh
      chmod 700 reset.sh
   }

if [ "$count" -eq 0 ]; then
  echo "ディレクトリ名 "player"を作成します"
  mkdir player
  cd ./player
mkreset "cp"
else
  echo "ディレクトリ名 "player"`expr $count + 1`を作成します"
  mkdir player`expr $count + 1`
  cd ./player`expr $count + 1`
mkreset "cp"
fi

クォーテーションの話はLPIC1でよく見たものの忘れがちなので改めてまとめてみる。

エスケープ

エスケープとは特殊文字の機能を無効にすること。

シングルクォーテーション

''に囲まれた文字列は全て文字列のままとして扱われる。
例えば、下記は変数が展開されない 

TEST=test
echo '$TEST'
$TEST

ダブルクォーテーション

””に囲まれた文字列は一部を除いて文字列として扱われる
一部とは、$  [\]バックスラッシュ [‘]バッククォート のこと。
例えば、下記は変数が展開される。

TEST=test
echo "$TEST"
test

バッククォーテーション

``に囲まれた文字列をコマンドとして実行できる。

ls
test1 test2
TEST=ls
echo `$TEST`
test1 test2
lsを予めバッククォートにいれても可能
TEST=`ls`
echo $TEST
test1 test2

まとめ

シングルクォーテーションは全て文字列に入れておくことを前提に、
変数を展開しつつ各文字列を一つにしたいならダブルクォーテーション、
コマンドを利用したいならバッククォーテーションと覚える。

おまけ
一文字だけをエスケープしたい場合、[\]バックスラッシュをつける

サーバー移転作業後に移転後のアカウントで新しいメールアカウントを作成したときにメールテストをしたときの話。
メールの送信はどのサーバーにもできるけど受信ができないときがあった。
・メールが受信できるのは送信元サーバー内と送信先が一緒のときだけ。

上記のことはローカル配送のことを指す。
ローカル配送とは上記のように送受信サーバーが一緒の場合、
メールサーバーの性質上名前解決をせずにメールを配送するから受信ができたということ。

まぁ、メールテストはDNSを切り替えてからしましょう。


参考
https://faq.cpi.ad.jp/faq/show/106?category_id=33&site_domain=default

仕事中、RAID1構成のsdbのハードディスクが故障したから交換作業を実施した。
交換したハードディスクのパーティションを切った。sdb1とする。sdb1をsda1からコピーして、
sdb1、sda1によるRAID1構成を作成した。これで終わりではなく
その後になぜsdbにgrubをインストールするのかがわからなかった。

grub-install --root-directory=/ /dev/sdb

自分の理論ではsda全体の中身をsdbに入れたからgrubもインストールされているだろうと思っていた。
後から先輩に教えてもらったけど、grubのインストールはマスターブートレコード(MBR)を指しているとのこと。
MBRはディスク内のセクタの先頭にあり一番初めに読まれるデータ。
MBR内にはブートローダとパーティションテーブルがある。ブートローダはパーティションテーブルの内容を元に
各パーティションであるsdb1やsdb2ブートセクタを起動できるようにする。ブートセクタによって各パーティションのOSが起動する仕組みだ。

つまり、sdb1をsda1にコピーしたところで、MBRが含まれていないので、別途MBRをインストールする必要があった。
ddコマンドでもMBRをコピーできるようだけど、ddコマンドをミスしてディスクを壊すと危ないのでコマンドでMBRをインストールしているとのこと。

参考
わかりそうでわからないシリーズ


リポジトリの更新

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

Zabbixagentをインストール

yum -y install zabbix-agent

エージェントのバージョンを確認

zabbix_agentd -V
zabbix_agentd (daemon) (Zabbix) 5.0.11

設定ファイルでIPを変更する

vi /etc/zabbix/zabbix_agent.conf
Server=10.xxx.xxx.xxx
ServerActive=10.xxx.xxx.xxx

サービス起動後、サーバーを再起動したときにエージェントが自動的に立ちあがるように設定する。

systemctl start zabbix-agent
systemctl enable zabbix-agent

ファイアウォールからポートを恒久的に開放する。

firewall-cmd --add-port=10050/tcp --permanent
firewall-cmd --reload

登録したポートを確認する。

firewall-cmd --list-ports

エラー発生時はログを確認する

/var/log/zabbix/zabbix_agentd.log

余談
Centos7.9だと普通のレポジトリでエージェントのバージョンを5.0として落とせないってことがあったら
練習環境のサーバーでは、SCL(ソフトウェアコレクション)って本来redhatとのサポートとは違うところからリポジトリをダウンロードしてからエージェント5.0を落としていた。でも本番環境ではrpmからリポジトリ更新したらよかったのでsclをインストールする必要はなかった

yum -y install centos-release-scl

参考
https://densan-hoshigumi.com/server/zabbix-50-centos7-apache-mariadb-install
https://eng-entrance.com/linux-centos-port
https://satimo.org/2020/07/zabbix-40-50-update/

参考
https://densan-hoshigumi.com/server/zabbix-50-centos7-apache-mariadb-install
https://eng-entrance.com/linux-centos-port
https://satimo.org/2020/07/zabbix-40-50-update/

とあるクラウドからubuntu20.04の環境にNICを2つ設置後に、コンソール上からIPを追加する機会があった。
簡単につける場合、nmtuiをたたいてからGUI上で設置できるんだけど今回はできなかった。理由は割愛。

ubuntu20.04の場合は、まず、/etc/network/以下にある設定ファイル名を変更して無効化にした。
ファイル名は環境によって変わるからファイルの中身を確認したらいいと思う。

その後、[99-netcfg.yaml]をvimで編集。

自分の場合は次のように記載。

network:
    version: 2
    ethernets:
        eth00:
            addresses: [10.1.1.1/24]
            gateway4: 10.1.1.255
            nameservers:
#               addresses: [111.111.111.111,111.111.111.112]
                addresses: [8.8.8.8]
                search: []
            optional: true
network:
    version: 2
    ethernets:
        eth01:
            addresses: [10.111.111.111/24]
                search: []
            optional: true

コメントアウトしている箇所は、クラウド上で認証のネームサーバーだったけど、名前解決が上手くいかなかったから[8.8.8.8]に変更したら成功した。わかる人教えてください。

ファイルを作成後は

netplan apply

で変更。成功した場合、何も返答がない。
インデントには厳しいのでスペース一つの差でエラーが返ってくるから気を付けること。

余談だけど、毎回sudoコマンドからパスワードを打つのが面倒な場合、
sudo su - で一度権限を昇格してしまうのオススメ。

参考
Ubuntu 20.04 LTSで固定IPアドレスを設定する方法【サーバー編】

lxcの容量を小さくするためにはlvreduceで下記のように実施する必要があるが、
先にファイルシステムのサイズを変更しないといけない。
ファイルシステムをのサイズを変更しない場合、対象のlxcのデバイスをマウントできなくなる事故が発生するから。

lvreduce -L -10G /var/mapper/xxx

ファイルシステムのサイズはresize2fsで実施可能。

resize2fs /var/mapper/xxx 1G 

ipadからpixiv sketchでイラストを描いてみた。
オプションの中には[自動着色]があったので使ってみた。

まだまだ人が描いたほうがよさそう。とはいえ、参考になる塗りの部分はあるし、線画次第ではもっと化けるかもしれない。
ちなみに絵に至っては腕を前に出す男を描いてみたかっただけ。
割と顔はかっこいいんじゃないか。

参考
https://sketch.pixiv.net/

自分用のメモ

Zabbixの参考サイト
https://www.zabbix.com/jp/download?zabbix=5.0&os_distribution=ubuntu&os_version=20.04_focal&db=mysql&ws=apache

firewall等
https://tutorialcrawler.com/ubuntu-debian/ubuntu-20-04%e3%81%abzabbix%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95/

mysqlの参考サイト
https://www.yokoweb.net/2020/08/16/ubuntu-20_04-server-mysql/

Zabbixのバージョン確認のコマンド
zabbix_server -V