VMware ESX vCenter Linux windows CCNA 忍者ブログ

IT号 着地号 いろいろ号

 ITに関しての調べ物です。バージョンや出展はつど記事に記載予定です。

カレンダー
11 2025/12 01
S M T W T F S
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 27
28 29 30 31
リンク
カテゴリー
かぶりもの
最新CM
[06/07 gay]
[02/16 gay]
[02/12 ヴィトン セカンドバッグ スーパーコピー ヴィトン]
[09/30 vente boutique canada goose paris]
[09/28 canada goose belgique]
最新記事
プロフィール
HN:
ESXi
性別:
非公開
バーコード
RSS
ブログ内検索
アーカイブ
最古記事
(01/14)
(01/20)
(01/20)
(01/26)
(01/26)
忍者アナライズ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2025.12.16 (Tue)
Category[]

バージョン確認

▼Q
pythonコードを検討しています。

引数でホスト名を与え、そのホスト名でjsonファイル内を検索して、同時に、
そのホストのIDとPWも同様にjsonファイルに記載されているので、それを使用して
paramikoでログインします。そして、「uname -a」か「/etc/redhat-release」で
ログインしたホストのバージョンかわかるように表示します。

具体的には下記のように表示します。

 ホスト名:OSバージョン:確認日時

また、jsonファイルの名前は「hostList.json」です。
どのようなコードになりますか。

▼A
以下は、Pythonコードの例です。
このコードは、引数として与えられたホスト名を元に`hostList.json`ファイルを読み取り、
対応するホストのIDとPWを取得し、Paramikoを使用してリモートホストにSSH接続して
指定されたコマンドを実行し、結果を表示します。

```python
import json
import paramiko
from datetime import datetime

def get_host_credentials(host_name):
with open('hostList.json', 'r') as file:
data = json.load(file)
if host_name in data:
return data[host_name]['id'], data[host_name]['pw']
else:
raise ValueError(f"Host {host_name} not found in hostList.json")

def ssh_connect_and_execute(host_name, username, password, command):
try:
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(host_name, username=username, password=password)

stdin, stdout, stderr = client.exec_command(command)
result = stdout.read().decode('utf-8').strip()

return result

finally:
client.close()

def main(host_name):
try:
username, password = get_host_credentials(host_name)

# Connect to the remote host and execute the command
result = ssh_connect_and_execute(host_name, username, password, 'uname -a')

# Extract OS version information from the result
os_version = result.split('\n')[0]

# Display the information
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"ホスト名: {host_name} / OSバージョン: {os_version} / 確認日時: {current_time}")

except Exception as e:
print(f"エラー: {str(e)}")

if __name__ == "__main__":
host_name_input = input("ホスト名を入力してください: ")
main(host_name_input)
```

このコードは、`paramiko`ライブラリを使用してSSH接続を行います。
また、`get_host_credentials`関数は指定されたホスト名の認証情報を
`hostList.json`から取得します。`ssh_connect_and_execute`関数はSSH接続を確立し、
指定されたコマンドを実行します。
`main`関数はこれらの関数を呼び出して結果を表示します。

拍手[0回]

PR
2024.02.19 (Mon)
Category[Python]
Comment(0)

コマンドたち

▼Linux
ファイル名で再帰的に検索
find . -name "*" | xargs grep "検索文字"

ファイルの中身検索(フォルダ名は対象外)
grep hoge -rl ./*

行番号が出るのと大文字小文字の区別がない
grep -rin hoge ./*

find . -type f -exec grep -l "hoge" {}\;

サーバ間で設定ファイルを比較するときなど
diff /etc/hoge/hoge.conf <(ssh hogeUser@hostHoge cat /etc/hoge/hoge.conf)

viのハイライトを消す
:noh

時刻
date +'%Y/%m/%d %H:%M:%S'

viで開いているファイルパスと名前を表示する
:echo expand("%:p")

sar -P ALL 2


▼PowerShell
ディレクトリ配下を再帰的に中身検索
Get-Childitem -Recurse | Select-String -Pattern "hoge" -Encoding default
(エクセル内はだめです)

ファイル名の一部分で検索(再帰的)
Get-Childitem -Path <探すフォルダのパス> -Filter "*ファイル名*" -Recurse

拍手[0回]

2024.02.19 (Mon)
Category[Linux系]
Comment(0)

vmstat 1 10を実行した結果から最もメモリ使用率の高いときの値を抽出する

max_mem_usage=$(vmstat 1 10 | awk 'NR>3 {if ($3 > max) max=$3} END {print max}');echo "最大メモリ使用率: $max_mem_usage"

拍手[0回]

2024.01.10 (Wed)
Category[Linux系]
Comment(0)

OpenSSL

gzipとOpenSSLを使ったファイル圧縮&暗号化&復号化
https://thom.hateblo.jp/entry/2022/04/09/181647

暗号化するコード
#!/bin/bash
FILES="/home/thom/Test/Archive/*"
TIMESTAMP=`date +'%Y%m%d%H%M%S'`
PASSWORD="pass"

for f in $FILES
do
echo "Encripting: $f"
gzip -c $f | openssl enc -e -aes-256-cbc -pbkdf2 -iter 99999 -salt -k $PASSWORD -out /home/thom/Test/Encrypted/${TIMESTAMP}_$(basename -- $f).aes
mv $f /home/thom/Test/Archived/
done

復号化するコード
#!/bin/bash
FILES="/home/thom/Test/Encrypted/*"
PASSWORD="pass"
for f in $FILES
do
echo "Decrypting: $f"
openssl enc -d -aes-256-cbc -pbkdf2 -iter 99999 -salt -k $PASSWORD -in $f | gzip -d > /home/thom/Test/Decrypted/$(basename -- ${f%.*})
done


----------------------------------------------------
OpenSSLコマンドによる公開鍵暗号、電子署名の方法
https://qiita.com/kunichiko/items/3c0b1a2915e9dacbd4c1
大きなファイルを 117バイトずつのブロックに分割して
ブロックごとに暗号化することも不可能ではありませんが、
通常は以下の理由からそのようなことはしません。

RSAの計算は、非常にコストが高い(時間がかかる)ので、
大きなデータに対して繰り返し行うのは非効率

117バイトが128バイトになるため、データサイズが 約1.1倍くらいおおきくなる
そのため、大きなデータを公開鍵暗号で送る場合は、次のようにします。

まずデータ本体をAESなどの他の共通鍵暗号方式で暗号化します(1)
共通鍵は送り手が一時的に生成します

その共通鍵をRSAで暗号化します(2)
(1)と(2)を相手に送信します

共通鍵は送り手が一時的に生成した鍵を使えば良いため事前に
共有しておく必要がありません。そのため、公開鍵暗号のメリットは
残したまま共通鍵暗号を使うことができます。

opensslコマンドでも openssl enc -aes-256-cbc などでAESの暗号化が
できるので、大きなファイルはこれを使って二段階に暗号化すれば、
上記操作を再現できます。なお、opensslコマンド1回でこれを行う
方法はわかりません。

openssl smime コマンドを使って S/MIME形式にする方法も
あるようですが、あまり詳しく調べていません。

このサイトがいいかもしれない
https://www.web-dev-qa-db-ja.com/ja/linux/%E5%85%AC%E9%96%8B%E9%8D%B5%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6openssl%E3%81%A7%E5%A4%A7%E3%81%8D%E3%81%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E6%9A%97%E5%8F%B7%E5%8C%96%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/940274898/


-----------------------------
【図解】OpenPGPとS/MIMEの仕組みと違い ~メール暗号化と署名,ssl/tlsとの違い~
https://milestone-of-se.nesuke.com/sv-advanced/digicert/openpgp-smime-tls/#:~:text=%E4%B8%80%E6%96%B9%20S%2FMIME%20%E3%81%AF%E8%87%AA%E5%88%86,%E9%AB%98%E3%81%84%E3%81%93%E3%81%A8%E3%81%8C%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A7%E3%81%99%E3%80%82

拍手[0回]

2022.07.16 (Sat)
Category[未選択]
Comment(0)

算数

セミを高尾山で38匹、秩父山地で52匹、御岳山で26匹つかまえました。

20人の子供たち全員にセミを6匹ずつ分けるためには
あと何匹のセミを捕まえればいいのでしょうか。


出典:脳解明クイズ

拍手[0回]

2020.08.23 (Sun)
Category[遊び]
Comment(0)
Copyright © ESXi All Right Reserved.
Powered by Ninja Blog.
Template-Designed by ガスボンベ.