はじめに
先日、RHEL7のサーバでパッケージをアップグレードする作業がありました。
今回の作業では、アップグレード前とアップグレード後に複数のコマンドを実行してテキストファイルとして保存します。その後、ファイルの内容を比較して差異がないかチェックしていきます。
サーバ台数や実行するコマンドが少なければ手作業でも良いのですが、台数が7台、コマンドは10個くらいあったのでTeraTermマクロを作成することにしました。
マクロは、対象サーバに自動ログインし、コマンドごとにテキストファイルを書き出すようにします。TeraTermマクロとマクロを実行するバッチファイルを作成します。
接続環境
TeraTermマクロ
ホスト名、IPアドレス、ユーザー名、パスワードは正しく設定して下さい。
今回は以下の3つのコマンドを使用します。
・cat /etc/redhat-release
・df -h
・systemctl list-units -t service
ファイル名は「TestPC001.ttl」として保存します。
;=========================================================================
;Description:対象機器に接続して自動でログを取得します。
;Author :ITStudy
;Created :2021/08/13
;Modified :
;=========================================================================
;接続先、ユーザー名、パスワード設定
HOSTNAME = 'ホスト名'
IPADDR = 'IPアドレス'
USERNAME = 'ユーザー名'
PASSWORD = 'パスワード'
;=========================================================================
;ログの保存先
getdir DIR
getdate DATETIME "%Y%m%d-%H%M%S"
sprintf2 LogFile1 '%s\%s_version_%s.txt' DIR HOSTNAME DATETIME
sprintf2 LogFile2 '%s\%s_df_%s.txt' DIR HOSTNAME DATETIME
sprintf2 LogFile3 '%s\%s_systemctl_list-units_%s.txt' DIR HOSTNAME DATETIME
;=========================================================================
;コマンド組み立て
COMMAND = IPADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
;接続
connect COMMAND
;=========================================================================
;ログ開始
logopen LogFile1 0 1
pause 3
sendln 'cat /etc/redhat-release'
;ログ終了
pause 3
logclose
;=========================================================================
;ログ開始
logopen LogFile2 0 1
pause 3
sendln 'df -h'
;ログ終了
pause 3
logclose
;=========================================================================
;ログ開始
logopen LogFile3 0 1
pause 3
sendln 'systemctl list-units -t service'
:more
wait 'lines' '(END)'
if result=1 then
send ' '
goto more
elseif result=2 then
send 'q'
endif
;ログ終了
pause 3
logclose
;=========================================================================
バッチファイル(マクロ実行用)
ファイル名は、「TestPC001.bat」として保存します。
"C:\Program Files (x86)\teraterm\ttpmacro.exe" "/V" "C:\temp\TestPC001.ttl"
マクロ実行結果
「TestPC001.bat」を実行したらTeraTermマクロが実行されます。今回、テストとして3つのコマンドを実行させていますが、コマンドごとにテキストファイルが書き出されました。
TestPC001_version_20210814-223205.txt
Last login: Sat Aug 14 06:24:01 2021 from 192.168.188.1
[root@localhost ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)
[root@localhost ~]#
TestPC001_df_20210814-223205.txt
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.3G 17G 7% /
devtmpfs 904M 0 904M 0% /dev
tmpfs 913M 0 913M 0% /dev/shm
tmpfs 913M 8.6M 904M 1% /run
tmpfs 913M 0 913M 0% /sys/fs/cgroup
/dev/sda1 297M 113M 185M 38% /boot
tmpfs 183M 0 183M 0% /run/user/0
[root@localhost ~]#
TestPC001_systemctl_list-units_20210814-223205.txt
systemctl list-units -t service
UNIT LOAD ACTIVE SUB DESCRIPTION
abrt-ccpp.service loaded active exited Install ABRT coredump hook
abrt-oops.service loaded active running ABRT kernel log watcher
abrtd.service loaded active running ABRT Automated Bug Reporting
atd.service loaded active running Job spooling tools
auditd.service loaded active running Security Auditing Service
chronyd.service loaded active running NTP client/server
crond.service loaded active running Command Scheduler
dbus.service loaded active running D-Bus System Message Bus
firewalld.service loaded active running firewalld - dynamic firewall
getty@tty1.service loaded active running Getty on tty1
kdump.service loaded active exited Crash recovery kernel arming
kmod-static-nodes.service loaded active exited Create list of required stati
libstoragemgmt.service loaded active running libstoragemgmt plug-in server
lvm2-lvmetad.service loaded active running LVM2 metadata daemon
lvm2-monitor.service loaded active exited Monitoring of LVM2 mirrors, s
network.service loaded active exited LSB: Bring up/down networking
NetworkManager.service loaded active running Network Manager
polkit.service loaded active running Authorization Manager
postfix.service loaded active running Postfix Mail Transport Agent
rhel-dmesg.service loaded active exited Dump dmesg to /var/log/dmesg
rhel-import-state.service loaded active exited Import network configuration
rhel-readonly.service loaded active exited Configure read-only root supp
lines 1-23rhnsd.service loaded active running LSB: Starts the Spacewalk Dae
rhsmcertd.service loaded active running Enable periodic update of ent
rngd.service loaded active running Hardware RNG Entropy Gatherer
rsyslog.service loaded active running System Logging Service
smartd.service loaded active running Self Monitoring and Reporting
sshd.service loaded active running OpenSSH server daemon
sysstat.service loaded active exited Resets System Activity Logs
systemd-journal-flush.service loaded active exited Flush Journal to Persistent
systemd-journald.service loaded active running Journal Service
systemd-logind.service loaded active running Login Service
systemd-random-seed.service loaded active exited Load/Save Random Seed
systemd-remount-fs.service loaded active exited Remount Root and Kernel File
systemd-sysctl.service loaded active exited Apply Kernel Variables
systemd-tmpfiles-setup-dev.service loaded active exited Create Static Device No
systemd-tmpfiles-setup.service loaded active exited Create Volatile Files and D
systemd-udev-settle.service loaded active exited udev Wait for Complete Device
systemd-udev-trigger.service loaded active exited udev Coldplug all Devices
systemd-udevd.service loaded active running udev Kernel Device Manager
systemd-update-utmp.service loaded active exited Update UTMP about System Boot
systemd-user-sessions.service loaded active exited Permit User Sessions
systemd-vconsole-setup.service loaded active exited Setup Virtual Console
tuned.service loaded active running Dynamic System Tuning Daemon
vmtoolsd.service loaded active running Service for virtual machines
lines 24-46wpa_supplicant.service loaded active running WPA Supplicant daemon
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
46 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
lines 32-54/54 (END)lines 32-54/54 (END)[root@localhost ~]#
コメント