忍者ブログ

◆当blogは、Linuxサーバ構築する際の実際の設定手順を個人的メモとして記載しております。LinuC試験の役に立つ情報があるかも…?

LinuC(Linux技術者認定資格)&リナックスサーバ構築設定事例

   

【Shell Script】情報表示取得

#=============================
#【実行日時の取得】
#-----------------------------
DATE=`date +%Y%m%d%H%M%S`
echo 【実行日時:${DATE}】
#=============================
#【情報取得用ディレクトリ作成】
#-----------------------------
mkdir -p "/tmp/ZIP_`hostname`_${DATE}"
chmod -R 777 "/tmp/ZIP_`hostname`_${DATE}"
cd /tmp/ZIP_`hostname`_${DATE}
pwd
ls -ltr
#=============================
#【情報取得用ファイルの初期化】
#-----------------------------
FILE_OS=`hostname`_OS_${DATE}.txt
FILE_NW=`hostname`_NW_${DATE}.txt
echo -n > ${FILE_OS}
echo -n > ${FILE_NW}
#=============================
#【定数設定】⇒ 区切り用の文字列を格納する
#-----------------------------
x_CONST=#*****************************
#=============================
#【変数設定】⇒ 改行区切りで格納する
#-----------------------------
x_LIST='# ★★★ 処理開始 ★★★ #
# ■ OS設定情報
cat /etc/redhat-release
uname -r
cat /etc/ssh/sshd_config | grep PermitRootLogin
cat /etc/ssh/sshd_config | grep AllowUsers
cat /etc/ssh/sshd_config | grep MaxStartups
getenforce
ip route | grep default
df -h
lsblk -l
cat /etc/fstab | grep -v "^#" | grep -v "^$"
rpm -qa | sort -f
systemctl get-default
systemctl -l --no-pager
cat /etc/profile | grep -v "^#" | grep -v "^$"
cat /etc/sysctl.conf | grep -v "^#" | grep -v "^$"
ls -l /var/log | grep core
cat /etc/kdump.conf | grep UUID
cat /etc/kdump.conf | grep -v "^#" | grep -v "^$"
cat /boot/grub2/grub.cfg | grep crashkernel
cat /etc/security/limits.conf | grep -v "^#" | grep -v "^$"
timedatectl status | grep zone
cat /etc/chrony.conf | grep -v "^#" | grep -v "^$"
systemctl list-unit-files -t service | grep chronyd
cat /etc/nsswitch.conf | grep -v "^#" | grep -v "^$"
cat /etc/rsyslog.conf | grep -v "^#" | grep -v "^$"
cat /etc/sysconfig/rsyslog | grep -v "^#" | grep -v "^$"
cat /etc/pam.d/login
cat /etc/pam.d/su
cat /etc/sudoers | grep -v "^#" | grep -v "^$"
cat /etc/rc.d/rc.local | grep -v "^#" | grep -v "^$"
# ★★★ 処理終了 ★★★ # '
#=============================
#【ループ処理】⇒ 読み込んだ行数分の処理を実行する
#-----------------------------
while read x_LINE
do
echo "${x_CONST}" >> ${FILE_OS}
echo "${x_LINE}" >> ${FILE_OS}
x_COMMAND=${x_LINE}
eval ${x_COMMAND}  >> ${FILE_OS}
done < <(echo "${x_LIST}")
#=============================
#【変数設定】⇒ 改行区切りで格納する
#-----------------------------
x_LIST_NW='# ★★★ 処理開始 ★★★ #
# ■ ネットワーク設定
ifconfig
ls -l /etc/sysconfig/network-scripts/
cat /etc/sysconfig/network-scripts/ifcfg-ens192
ip route
# ★★★ 処理終了 ★★★ # '
#=============================
#【ループ処理】⇒ 読み込んだ行数分の処理を実行する
#-----------------------------
while read x_LINE
do
echo "${x_CONST}" >> ${FILE_NW}
echo "${x_LINE}" >> ${FILE_NW}
x_COMMAND=${x_LINE}
eval ${x_COMMAND} >> ${FILE_NW}
done < <(echo "${x_LIST_NW}")
#=============================
#【ZIP圧縮、SCP転送】
#-----------------------------
cd /tmp
ls -l ZIP_`hostname`_${DATE}
zip -r ZIP_`hostname`_${DATE}.zip ZIP_`hostname`_${DATE}
chmod 777 ZIP_`hostname`_${DATE}.zip
ls -l /tmp/ZIP_`hostname`_${DATE}.zip
# ⇒⇒⇒ TeratermのSCP転送でダウンロードする
#scp /tmp/ZIP_`hostname`_${DATE}.zip 【ユーザ】@【IPアドレス】:/tmp/
cd /tmp
ls -ltr
rm -rf ZIP_`hostname`_${DATE}
rm -f ZIP_`hostname`_${DATE}.zip
ls -ltr
PR

【RHEL】XRDP

#===================================
# 【RHEL9 XRDP設定】
#===================================
# リポジトリ有効化
# (EPEL依存関係)
subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms
#===================================
# epelパッケージインストール
# (外部レポジトリ追加)
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
#===================================
# リポジトリの表示
# ('epel'が追加されていることを確認する)
dnf repolist
#===================================
# XRDPインストール
# (RDP機能をLinuxで利用する機能追加)
dnf --enablerepo=epel install -y xrdp
#===================================
# tigervnc-serverインストール
# (VNCサーバ機能の追加)
dnf --enablerepo=epel install -y tigervnc-server
#===================================
# XRDPサービス起動
systemctl start xrdp
#===================================
# XRDPサービス自動起動の有効化
systemctl enable xrdp
#===================================
# ファイヤーウォール設定(3389/tcp)
firewall-cmd --permanent --zone=public --add-port=3389/tcp
#===================================
# ファイヤーウォール設定の反映
firewall-cmd --reload
#===================================
# XRDP接続用のIPアドレスを確認する
# ※ Windows RDP接続 ⇒リモートデスクトップでRHEL9にログインする
ip a | grep "inet "

【RHEL】サブスク関連

■ RHELサブスク登録/割当/リポジトリ確認
#===================
# サブスクリプション登録
subscription-manager register
 ⇒ ユーザ名とパスワードを入力する
 ※ユーザ名には'@'以降は付けない
subscription-manager register --username <ユーザ名> --password <パスワード>
#===================
# サブスクリプションのリスト表示
subscription-manager list
subscription-manager list --available
#===================
# サブスクリプション設定
subscription-manager role --set="Red Hat Enterprise Linux Server"
subscription-manager service-level --set="Self-Support"
#===================
# サブスクリプション割当
subscription-manager attach
subscription-manager attach --auto
subscription-manager attach --pool=<プールID>
#===================
# yum/dnf リポジトリの表示
yum repolist
dnf repolist
 ⇒ リポジトリが使用可能となることを確認する

【BAT】service表示

@echo off
setlocal
REM ==========================
REM サービス表示名
set DISPLAY_NAME=
REM サービス名
set SERVICE_NAME=
REM サービスの起動状態
set SERVICE_STAT=
REM ==========================
set DISPLAY_NAME="Windows Time"
call :GET_SERVICE_NAME
call :GET_SERVICE_STAT
call :DISPLAY_STATUS
REM --------------------------
set DISPLAY_NAME="Windows Update"
call :GET_SERVICE_NAME
call :GET_SERVICE_STAT
call :DISPLAY_STATUS
REM --------------------------
set DISPLAY_NAME="Themes"
call :GET_SERVICE_NAME
call :GET_SERVICE_STAT
call :DISPLAY_STATUS
REM --------------------------
set DISPLAY_NAME="Windows Search"
call :GET_SERVICE_NAME
call :GET_SERVICE_STAT
call :DISPLAY_STATUS
REM --------------------------
goto END
REM ==========================
::: サービス表示名を元にサービス名を取得
:::
::: 必要な環境変数
:::  DISPLAY_NAME
::: 設定される環境変数
:::  SERVICE_NAME
:::
REM --------------------------
:GET_SERVICE_NAME
set SERVICE_NAME=
if not defined DISPLAY_NAME exit /b 1
set CMD=sc getkeyname %DISPLAY_NAME%
for /f "usebackq tokens=1,2,3" %%a in (`%CMD%`) do (
REM echo DEBUG: a=%%a b=%%b c=%%c
if "名前" == "%%a" (
set SERVICE_NAME=%%c
)
)
if not defined SERVICE_NAME (
REM サービス名が取得できなければエラー
echo ERROR: サービス名の取得に失敗しました(%DISPLAY_NAME%)
exit /b 1
)
exit /b 0
REM ==========================
::: サービス名からサービスの状態を取得
:::
::: 必要な環境変数
:::  SERVICE_NAME
::: 設定される環境変数
:::  SERVICE_STAT
:::
REM --------------------------
:GET_SERVICE_STAT
set SERVICE_STAT=
if not defined SERVICE_NAME exit /b 1
set CMD=sc query %SERVICE_NAME%
for /f "usebackq tokens=1,2,3,4" %%a in (`%CMD%`) do (
REM echo DEBUG: a=%%a b=%%b c=%%c d=%%d
if "STATE" == "%%a" (
set SERVICE_STAT=%%d
)
)
if not defined SERVICE_STAT (
REM 状態が取得できなければエラー
echo ERROR: サービスの状態取得に失敗しました(%SERVICE_NAME%)
exit /b 1
)
exit /b 0
REM ==========================
::: 取得したサービスの状態を表示
:::
::: 必要な環境変数
:::  DISPLAY_NAME
:::  SERVICE_STAT
::: 設定される環境変数
:::  なし
:::
REM --------------------------
:DISPLAY_STATUS
if not defined DISPLAY_NAME (
echo ERROR: サービス表示名が設定されていません
exit /b 1
)
REM カラーのため設定
for /f %%i in ('cmd /k prompt $e^<nul') do set ESC=%%i
if defined SERVICE_STAT (
REM %変数:~1,-1%は最初と最後の1文字を除いて展開する
if %SERVICE_STAT% == RUNNING (
REM 緑字
echo %DISPLAY_NAME:~1,-1% (%SERVICE_NAME%^) [%ESC%[92m%SERVICE_STAT%%ESC%[0m^]
) else (
REM 赤字
echo %DISPLAY_NAME:~1,-1% (%SERVICE_NAME%^) [%ESC%[91m%SERVICE_STAT%%ESC%[0m^]
)
) else (
REM %変数:~1,-1%は最初と最後の1文字を除いて展開する
echo %DISPLAY_NAME:~1,-1% ^(%SERVICE_NAME%^) ^[ UNKNOWN ^]
)
exit /b 0
REM ==========================
::: バッチ終了処理
REM --------------------------
:END
echo.
pause
REM --------------------------
endlocal
exit /b 0

【Shell Script】デバッグ

#======================
# デバッグモードでスクリプトを動かす方法
#======================
#-----------------------------------
# シェルスクリプトのデバッグ方法
#-----------------------------------
bash -x <シェルスクリプト>
bash -v <シェルスクリプト>

【Linux】DNS設定

#======================
# DNS名前解決の方法
#======================
#-----------------------------------
# resolv.conf設定
#-----------------------------------
vi /etc/resolv.conf
 ※以下を追記する
  nameserver : <DNSサーバIPアドレス>
  domain : <ドメイン名>
  search : <完全修飾ドメイン名>
 
#-----------------------------------
# DNSサーバでの名前解決を確認する
#-----------------------------------
dig @<DNSサーバIPアドレス> <ドメイン名>
 ※「status:NOERROR」が表示されていることを確認する

【RHEL】サブスク登録

#=====================
# ■ RHEL サブスクリプション登録
#=====================
※事前準備として、RHELアカウントを取得しておく
#--------------------------------
yumリポジトリを確認する
#--------------------------------
yum repolist
 ※「利用できるリポジトリーがありません」を確認する
#--------------------------------
サブスク状態を確認する
#--------------------------------
subscription-manager list
 ※「状態:不明」を確認する
#--------------------------------
対象サーバをサブスク登録する
#--------------------------------
subscription-manager register
 RedhatアカウントID:<ユーザ名>
 RedhatアカウントPW:<パスワード>
#--------------------------------
サブスクのプールIDを表示する
#--------------------------------
subscription-manager list --available
 ※「プール ID:<プールID>」を確認する
#--------------------------------
プールIDを指定して、サブスクライブする
#--------------------------------
subscription-manager attach --pool=<プールID>
 ※「サブスクリプションが正しく割り当てられました」を確認する
subscription-manager subscribe --pool=<プールID>
 ※「サブスクリプションが正しく割り当てられました」を確認する
#--------------------------------
サブスク状態を確認する
#--------------------------------
subscription-manager list
 ※「状態:サブスクライブ済み」を確認する
#--------------------------------
yumリポジトリを確認する
#--------------------------------
yum repolist
 ※リポジトリーが表示されることを確認する
#=====================
# 過去のサブスク情報を一旦削除して再登録する場合
#=====================
subscription-manager remove --all
subscription-manager unregister
subscription-manager clean
subscription-manager register
subscription-manager refresh
subscription-manager attach --auto
#=====================
# サブスクのヘルプ表示
#=====================
subscription-manager register --help

【Windows】印刷キュー

#======================
■ プリンタの印刷キュー表示コマンド
#======================
------------------------------------
【書式】
rundll32.exe printui.dll,PrintUIEntry /o /n '<プリンター名>'
------------------------------------
【例】
rundll32.exe printui.dll,PrintUIEntry /o /n 'OneNote (Desktop)'
------------------------------------
※「rundll32.exe」の格納場所は以下となるが、それ以外の場所にある場合はウィルススキャン実施対象
 C:\WINDOWS\system32\
 C:\Windows\SysWOW64\rundll32.exe

【Linux】LVM設定

#======================
★LVM の設定方法
#======================
パーティション作成
------------------------------------
fdisk /dev/sdb
  p
  n
  p
  1
  [Enter]
  [Enter]
  t
  8e  ←コレはLVM用、kdump用は"83"を指定する
  p
  w
------------------------------------
作成したパーティション確認
------------------------------------
fdisk -l | grep /dev/sdb
 
#======================
PV作成
#======================
pvcreate /dev/sdb1
  ⇒"sdb1"という名前のPV作成
------------------------------------
PV確認
------------------------------------
pvs -v
pvdisplay -v
#======================
VG作成
#======================
vgcreate -s 64m vg02 /dev/sdb1
  ⇒PVを基に、"vg02"という名前のVG作成
------------------------------------
VG確認
------------------------------------
vgs -v
vgdisplay -v
#======================
LV作成
#======================
lvcreate -l 100%FREE -n lv_Test vg02
  ⇒VGを基に、"lv_Test"という名前のLV作成
------------------------------------
LV確認
------------------------------------
lvs -v
lvdisplay -v
 
#======================
LVMデバイスの確認
#======================
ls -ld /dev/vg*
ls -ld /dev/mapper
ls -ld /dev/vg02
 
#======================
ファイルシステム作成
#======================
mkfs.xfs /dev/vg02/lv_Test
  ⇒フォーマット形式を指定する
 
#======================
マウントポイント作成
#======================
ls -ld /<マウントポイント>
mkdir -p /<マウントポイント>
 
#======================
手動マウント
#======================
mount -t xfs /dev/mapper/<VG名-LV名> /<マウントポイント>
------------------------------------
マウント情報の表示で手動マウント確認
------------------------------------
mount
------------------------------------
アンマウントで手動マウントを解除する
------------------------------------
umount /<マウントポイント>
 
#======================
fstab設定
#======================
vi /etc/fstab
  /dev/mapper/<VG名-LV名> /<マウントポイント> xfs defaults 1 0
------------------------------------
fstab設定内容の確認
------------------------------------
cat /etc/fstab
#======================
fstabの内容でマウント実行
#======================
mount -a
 
#======================
ディスク情報の表示
#======================
df -hT
------------------------------------
mount
------------------------------------
fdisk -l
 
#======================
LVM削除
#======================
lvremove /dev/<VG名>/<LV名>
 
#======================
GPTパーティション作成
#======================
parted /dev/sdb
  mklabel gpt
  p
  mkpart
    primary
    xfs
    1
    <最大値>
  set 1 lvm on
  print
  quit
 
#======================
★kdumpにLVMを指定する方法
#======================
kdump.conf設定(例)
------------------------------------
vi /etc/kdump.conf
  #ext4 UUID="<UUID番号>"
  xfs /dev/vg02/lv_Test
  path /var/crash
  core_collector makedumpfile -d 16
  default reboot

【Linux】ネットワーク設定

#======================
# ■ ネットワーク設定(nmcli コマンド)※ens192、サブネットマスク値の部分は環境により適宜読み替える
#======================
#-----------------------------------
# nmcli手動設定
#-----------------------------------
nmcli c m ens192 ipv4.method manual
#-----------------------------------
# IPアドレス設定(追加
#-----------------------------------
nmcli c add type ethernet con-name ens192 ifname ens192 ip4 <IPアドレス>/24 gw4 <GWアドレス>
#-----------------------------------
# IPアドレス設定(変更
#-----------------------------------
nmcli c mod ens192 ipv4.method manual ipv4.addresses "<IPアドレス>/24"
#-----------------------------------
# ダミーインタフェース作成
#-----------------------------------
nmcli con add type dummy ifname dummy0 ipv4.method manual ipv4.addresses <IPアドレス>/24 ipv6.method manual ipv6.addresses 9999:aaa:bbb::9/64
nmcli con add type dummy ifname dummy0 ipv4.addresses <IPアドレス>/24
nmcli con add type dummy ifname dummy0
#-----------------------------------
# GW追加
#-----------------------------------
nmcli c m ens192 ipv4.gateway <GWアドレス>
#-----------------------------------
# GW削除
#-----------------------------------
nmcli c m ens192 ipv4.gateway 0.0.0.0
#-----------------------------------
# スタティックルート追加
#-----------------------------------
nmcli c m ens192 +ipv4.routes "<ネットワークアドレス>/24 <GWアドレス>"
#-----------------------------------
# スタティックルート削除
#-----------------------------------
nmcli c m ens192 -ipv4.routes "<ネットワークアドレス>/24 <GWアドレス>"
#-----------------------------------
# メトリック値の変更
#-----------------------------------
nmcli c m ens192 ipv4.route-metric <値>
#-----------------------------------
# ポリシールーティング設定
#-----------------------------------
nmcli c m ens192 ipv4.routes "0.0.0.0/0 <GWアドレス> table=1" ipv4.routing-rules "from <ネットワークアドレス> table 1 priority 100"
#-----------------------------------
# nmcli設定反映
#-----------------------------------
nmcli c up ens192
#-----------------------------------
# ネットワーク設定の表示
#-----------------------------------
nmcli d
nmcli d show
nmcli c
nmcli c show ens192
#======================
# ■ ネットワーク設定情報
#======================
ip a
ifconfig -a
route -n
ip route
ls -l /etc/sysconfig/network-scripts/
#======================
# ■ IPv6設定の無効化の解除方法
#======================
#-----------------------------------
# IPv6の起動時設定を確認する
#-----------------------------------
grub2-editenv list
  ⇒表示結果の文字列から'ipv6.disable=1'の部分を削除した文字列を以下のコマンドで指定する
#-----------------------------------
# IPv6無効化の解除
#-----------------------------------
grub2-editenv - set '<文字列>'

更新日付

07 2026/08 09
S M T W T F S
1
2 3 4 5 6 7 8
9 10 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

RECOMMEND

プロフィール

HN:
Account
HP:
性別:
非公開
職業:
--- NODATA ---
趣味:
--- NODATA ---
自己紹介:
◆当blogは、Linuxサーバ構築する際の実際の設定手順を個人的メモとして記載しております。LinuC試験の役に立つ情報があるかも…?

リンク

<<前のページ  | HOME |  次のページ>>
Copyright ©  -- LinuC(Linux技術者認定資格)&リナックスサーバ構築設定事例 --  All Rights Reserved
Design by CriCri / Photo by Melonenmann / powered by NINJA TOOLS / 忍者ブログ / [PR]