ギャバンITサービス
お菓子の家が作れるシステムエンジニアです

macでteratermマクロのようなこと(妄想)

ローカルのlinuxへの接続やgoogle cloudへの接続では、windowsからはtera termのマクロを書いておいて、それを使って接続している。 macはunixなのでtera termが動くわけじゃない。 でもログインしたときに慣用句みたいに打つ内容があるから、自動ログインした後で打鍵もやらせたい。 dfの結果とか、自前スクリプトによるプロセス稼働確認とか。 今回はmac側でやったことの記録。 結論 macで.terminalのファイルをクリックすると、tera termでttlファイル書いておいたときのように、linuxに接続してコマンドラインを自動入力して動いてくれるようにしてる。 ローカルlinuxの場合、黄色い画面色で開いてログインし接続後にonlchkってやって自前スクリプトを呼び出し、システム状態を表示させてる。 色合いとか調整した設定を.terminalって種類のファイルとして書き出し、それをクリックすることで自動接続&打鍵のスクリプトを呼び出している。 このスクリプトは大昔に作ったんやけど、当時に参考にさせてもらったサイトがどこなのかわからん。もう存在しないのかなぁ。探し方悪いだけかもしれん。 用意してるのは3種類のファイル。 当初はlinuxの種類に応じて色を変えたいだけだったけど、欲張って自動ログインとシステム状態確認をやらせたくなった。 .terminalの設定ファイル autologinってログインのための入力内容 呼び出しのスクリプト .terminalの設定ファイル 設定ファイルは、ダブルクリックすると設定した色合いやサイズ、シェルが起動する。 tera termでいう/Fで指定するウィンドウの色とか指定するときのファイルみたいなもんか。 このファイルは、ターミナルの環境設定を開いたとき「プロファイル」の画面が開くとこから作る。 テキストの色とかウィンドウサイズを設定し、「コマンドを実行」ってとこで起動時に呼び出すシェルを指定する。 自分の場合は、赤がgoogle cloud、黄色をローカルlinux、dockerコンテナを青か緑にしてtera termの色設定しているので、それに寄せて設定を作っている。 エコーバックに対する文字列送信のスクリプト tera termでいうttlファイルみたいなもの。 autologin-xxx.shってのをいくつか用意して、ローカルlinux用とgoogle cloud用とか使い分けてる。 実際は.terminalで設定した起動時の呼び出しスクリプトから最初にインクルードさせて使う。 autologinで始まるシェルに引数を受け取りつつ、打鍵内容を書いておく。 パラメータは、接続先ホスト、利用osユーザ、パスワード、ポート番号。 コマンドラインのエコーバックに来た文字列をexpectに書いておき、それに対する送信文字列をsendさせる。 最初のほうにある「Are you sure~」のあたりは初めてログインするときの確認エコーバック。 長らくこのエコーバック見てないけど、大文字小文字も厳密に書かないといけない。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #!/bin/sh auto_ssh() { host=$1 id=$2 pass=$3 ptNum=$4 ptTime=10 expect -c " set timeout ${ptTime} spawn ssh ${id}@${host} -p ${ptNum} expect \"Are you sure you want to continue connecting (yes/no)?\" { send \"yes\n\" expect \"${id}@${host}'s password:\" send \"${pass}\n\" } \"${id}@${host}'s password:\" { send \"${pass}\n\" expect \"nari\" send \"onlchk\n\" expect \"nari\" send \"df -h\n\" } interact " } montereyになった今ではnari@gvisMac ~ %って感じで「利用ユーザ@ホスト名 ホームディレクトリ」がコマンドライン待ちに来るけど、ユーザ名のみをexpectさせてonlchkとdf -hって打たせたいので書いてる。 ...

nftables設定してみる

ファイアウォールって苦手。 実務ではハードウェアがやってくれてたから、使ったことない。 solaris8の頃に一度設定練習したことあるけど、それっきり。 ipchainsやったかなぁ。 個人的にはヤマハのルータで特定のポートの穴あけをしてみたり、awsとかgcpのネットワークでグローバルネットのうち自分の固定IPのみを許可させたりした程度。 それでも間違えたら入られちゃうから、真剣にテストしたっけ。 今回は実務でやってみるチャンスがあったので、その試験設定をメモ。 redhatのドキュメント 最初はfirewalldってのあったっけと思ってドキュメント読んでたら、こんなこと書いてあった。 7.4. ネットワーク | 9.0 リリースノート | Red Hat Enterprise Linux | 9 | Red Hat Documentation access.redhat.com 1 RHEL では、ipset パッケージおよび iptables-nft パッケージが非推奨になりました。iptables-nft には、iptable、ip6tables、ebtables、arptables などのさまざまなツールが同梱されています。このようなツールには新しい機能がなくなり、新しいデプロイメントに使用することは推奨されません。代わりに、nftables パッケージが提供する nft コマンドラインツールを使用することが推奨されます。既存の設定は、可能であれば nft に移行する必要があります。 他にもこうあった。 1 RHEL 9 では、iptables フレームワークは非推奨になりました。結果として、iptables バックエンドと、firewalld の 直接インターフェイス も非推奨になりました。 なるほど、nftables使えってことね。 firewalldもフェードアウントしてくんかな。これ古いし、使うのやめとこか。 iptablesの実装やりなおしみたいな感じ 昔は1つずつルールをコマンドラインで書いてたな。 nftablesってのはfirewalldとか停止して使うそうな。 コマンドラインじゃなく、設定ファイルを読み込ませて動かすみたい。 コマンドラインでの設定もできるみたいやけど、ちゃんと設定が書けるってのは読みやすくてありがたい。 企業の中のファイアウォール申請は「ソースとデスティネーションのxxポートを許可」とか書いてることが多いから見直しやすい。 親切にredhat9でサンプルを作ってくださってる方がおられた。 作者さんありがとう。タイムリーに必要だったので、めっちゃ参考にさせてもらった。 Red Hat Enterprise Linux 9 のファイアウォール設定 | Psychoco Laboratory psychoco.net 作者さんは管理者と日本国内のみ接続許可するようにするのが目的やったから、日本国内のIPリストを用意されてたけどそこはパス。 ...

redhat9でマウントしたisoイメージをリポジトリに追加

インターネットつなげない環境で、インストールで使うisoイメージをリポジトリに仕立てる。 1 2 3 # cp /mnt/disc/media.repo /etc/yum.repos.d/rhel9.repo # chmod 644 /etc/yum.repos.d/rhel9.repo # vi /etc/yum.repos.d/rhel9.repo viでこう編集する。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [BaseOS] name=BaseOS Packages Red Hat Enterprise Linux 9 metadata_expire=-1 gpgcheck=1 enabled=1 baseurl=file:///mnt/disc/BaseOS/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [AppStream] name=AppStream Packages Red Hat Enterprise Linux 9 metadata_expire=-1 gpgcheck=1 enabled=1 baseurl=file:///mnt/disc/AppStream/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release リポジトリを有効にする。 ...

samba4でゴミ箱

前からやってみたかったのでサラっとやってみる。 ゴミ箱の作り方 たぶんsambaが2とか3のバージョンのときからあったと思う。 今のバージョンを確認してみる。 psで確認するとsmbdって名前で動いてるから、適当に–versionってやってみる。 1 2 3 $ /usr/sbin/smbd --version Version 4.11.6-Ubuntu $ いったんsamba4使ってるから方法探してみると、メモっておられる方がいた。 作者さんありがとう。 Linux samba4 でゴミ箱機能を有効にする - わすれないうちにメモしよう kt-hiro.hatenablog.com 共有設定に追記 自分はデータの入ったパーティションを必ず別ディスクにしてる。 dockerっていう領域。 1 2 3 $ df -h | grep docker /dev/sdb 629G 110G 488G 19% /docker $ dockerはコンテナと永続化業域が入ってる。 smb.confにはglobal指定と、共有ごとの指定がある。 global指定にはこう足した。 1 2 [global] vfs objects = recycle 次にdockerのための領域の共有に「recycle」で始まる行をいくつか追記。 ゴミ箱は隠しフォルダにしたかったので、ドットつきのフォルダ名を指定。 ...

vscodeで「gitのリポジトリがありません」ってよ

windowsのvscodeで、何かの拍子にたまに起きる。 フォルダあるのに何言うてんねん、ってなる。 ファイルサーバはubuntu20。 実際.gitのフォルダは存在する。 たぶんフォルダのアクセス権とかセキュリティ設定かなって類推する。 ubuntu20でgit branchってやってもわからんかったけど、windows側でgit bashで開いたらこんなんなってた。 unsafe repositoryって、もー、なんやねん、うっざいなぁ。 さっさとvscodeで編集したいのになぁ。 fatalの表記にこう打てって書いてある。 1 git config --global --add safe.directory '%(prefix)///nafslinux.intra.gavann-it.com/nariGVIS/etc/gvis-memos2022' そのまま打つと、gitのリポジトリ読めるようになってgitgraphもちゃんと表示できるようになった。 何なんやろ。