TeraTermマクロでコマンドごとにログを書き出してみた

スポンサーリンク

はじめに

先日、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 ~]#

コメント