Tips/Linux

CentOS7になったとたんにコマンドやら設定やらデータベースやらの作法が変わりまくってパニックになった人用まとめ

インストール後によく引っかかるところ

サービス

  • chkconfigはあることはあるけど、ほとんどsystemctlになった。
  • サービスの一覧
    • systemctl list-unit-files --type=service
  • サービスの起動・停止・確認
    • systemctl start sshd
    • systemctl stop sshd
    • systemctl restart sshd
    • systemctl status sshd -l
      • statusではログも表示されるが、省略されるので、-lを付ける。
  • サービスの自動起動設定・自動起動停止
    • systemctl enable sshd
    • systemctl disable sshd
      • 結果が表示されないので、statusすること。
  • .service(いわゆる従来のinit.dスクリプト)の場所
    • /usr/lib/systemd/system/
    • /etc/systemd/system
      • 原本は/usr/libで、改造するときは/etcにコピーしていじること。

不要なサービス

  • avahi-daemon
  • iscsi-shutdown
  • lvm2-lvmetad lvm2-monitor
    • LVMを使っていないなら不要。
  • NetworkManager
    • ネットワークの自動構成をしたくない場合

NTPクライアント

  • ntpdではなくchronyd
    • systemctl status chronyd
  • 時刻問い合わせ先
    • vi /etc/chrony.conf
      server NTP1.JamFunk.jp iburst
      server NTP2.JamFunk.jp iburst
      
      #bindcmdaddress ::1 #IPv6をlistenしない

ネットワーク

  • IPアドレスを調べるには、ifconfigではなくip
    • ip addr show
      • 従来のifconfig
      • もしくはyum install net-toolsでifconfigをインストール
  • デバイス名はeth*ではなく、デバイスの種類に応じた命名に
  • ネットワークインターフェースの設定を変更するには、nmcli
    • nmcli con mod 'enp1s0' ipv4.method manual ipv4.addresses "192.168.1.100/24" ipv4.gateway "192.168.1.1"
    • もしくはGUIツールnmtui
    • /etc/sysconfig/network-script/ifcfg-en*でもできる
  • ネットワークインターフェースの上げ下げ
    • nmcli c up enp1s0
    • nmcli c down enp1s0
  • ホスト名の変更・確認
    • hostnamectl set-hostname ホスト名
    • hostnamectl status
  • ARPテーブルを表示するには、arpではなくip r
  • netstatではなくip n
    • netstat -iではなくip -s -l

シャットダウン

  • haltではシャットダウンするけど電源が落ちない
    • halt -p または shutdown -h now

CLIとGUI切り替え

  • 確認
    • systemctl get-default
  • CLIモード(マルチユーザモード)にする
    • systemctl set-default multi-user.target
  • GUIモード(グラフィカルログイン)にする
    • systemctl set-default graphical.target

言語の変更

  • /etc/sysconfig/i18nではなく、localectl
  • 確認
    • localectl status
  • 変更
    • localectl set-locale LANG=en_US.utf8

データベース

  • MySQLの代わりにMariaDB
    • 互換性がある

ファイアーウォール

  • iptablesは健在だが、それを操作するfirewalldをかましている
    • systemctl disable firewalld
      • Apacheとかがアクセスできなければおそらくこいつのせい

よく使うインストールパッケージ

  • Apache
    • httpd
  • Perl
    • perl-core perl-libwww-perl perl-Carp-Clan perl-CGI perl-GD perl-Digest-SHA1 perl-DBD-MySQL ImageMagick-perl
  • wget
    • wget
  • nslookup, dig
    • bind-utils
  • unzip
    • unzip
  • コンパイラ
    • gcc-c++
  • snmp
    • net-snmp net-snmp-utils lm_sensors
  • deltarpm(yum updateなどで差分のみダウンロードして帯域を節約する)
    • deltarpm
  • epelレポジトリ
    • epel-release
  • ClamAV
    • clamav clamav-update
      • epelレポジトリにある
      • /etc/cron.d/clamav-updateにfreshclamを作ってくれる。

php 5.6

  • 理由ははっきり覚えていないけど、互換性あたりでRemi-php56レポジトリから引っ張った
  • vi php.ini
    user_ini.filename = ".user.ini"
    display_errors = On
    date.timezone =Asia/Tokyo

php 7.1

journald

  • サービスを管理するservicedはログをjournaldに送り、journaldは/var/run/log/journalに保存する。つまり、再起動したら消える。
  • /var/logに永続的に保管したい。
    • mkdir /var/log/journal
    • /etc/systemd/journald.conf SystemMaxUse=2G
      • ログのサイズ上限
    • systemctl restart systemd-journald
  • journalのログ確認
    • journalctl
      • とりあえず見る。
    • journalctl -l --no-pager
      • lessせず、折り返して全文表示。grepでもかましてフィルタした方が良い。
    • journalctl -u named-chroot.service
      • 特定のサービスのみ。
    • journalctl -f
      • tailのような追従する出力。