IT graph

気になったデバイスやプログラムで楽しくやっていけたら良いなと思っております。

C言語の文字列について

以下のように6文字サイズのchar型変数に6文字を入れた場合

char str2[5] = "test23";
import numpy as np
arr = np.array([1, 2, 3])

以下のようにコンパイル時に警告がでる

hello.c:5:16: 警告: initializer-string for array of ‘char’ is too long
    5 | char str2[5] = "test23";
      |                ^~~~~~~~

以下のように6文字分のサイズに5文字を入れた場合

char str2[5] = "test2";

エラーにならず正常に稼働する

out2-0:t
out2-1:e
out2-2:s
out2-3:t
out2-4:2
out2-5:

16進数表記(utf8)で出力すると最期はnullであることがわかる

out2-0:74
out2-1:65
out2-2:73
out2-3:74
out2-4:32
out2-5:0

clang prinft

printf 標準出力を使う printf(出力文字フォーマット, 出力する変数や値)
sprintf メモリを使う sprinf(出力先アドレス, 出力文字フォーマット, 出力する変数や値)
fprintf ファイルを使う fprintf(出力先ファイル,出力文字フォーマット, 出力する変数や値)
 fprintfの出力先にstdoutを指定すれば標準出力へ出力される

red hat epel install

[root@localhost ~]# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y
サブスクリプション管理リポジトリーを更新しています。
メタデータの期限切れの最終確認: 0:27:40 前の 2024年03月17日 13時15分22秒 に実施しました。
epel-release-latest-9.noarch.rpm 18 kB/s | 19 kB 00:01
依存関係が解決しました。
==============================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
==============================================================================================================================
インストール:
epel-release noarch 9-7.el9 @commandline 19 k

トランザクションの概要
==============================================================================================================================
インストール 1 パッケージ

合計サイズ: 19 k
インストール後のサイズ: 26 k
パッケージのダウンロード:
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : epel-release-9-7.el9.noarch 1/1
scriptletの実行中: epel-release-9-7.el9.noarch 1/1
Many EPEL packages require the CodeReady Builder (CRB) repository.
It is recommended that you run /usr/bin/crb enable to enable the CRB repository.

検証 : epel-release-9-7.el9.noarch 1/1
インストール済みの製品が更新されています。

インストール済み:
epel-release-9-7.el9.noarch

完了しました!
[root@localhost ~]#

ssh

SSHコマンド
 ssh user@host

■ポート確認
 traceroute -T -p 22 host
nmap host (scanしに行くので使う際は注意)

MACについて
 macsshを行う際にconnection refusedが出る場合は、
 「システム環境設定」>「共有」>「リモートログイン」にチェックを入れる

秘密鍵/公開鍵の作成
 ・ssh-kegenで基本的にすべてemptyで登録。
 ・デフォルトはユーザディレクトリ配下の.sshディレクトリ配下に作成される
 ・すでに存在する場合は、更新するかどうかを確認される
 ・以下ファイルが作成される
  authorised_key
  id_rsa (秘密鍵)
  id_rsa.pub (公開鍵)
  known_hosts
  known_hosts.old

■公開鍵のコピー
  ssh-copy-id user@host
  コピー先の.ssh配下のauthorized_keysが更新される
 

システム監視

■サービスの監視
 ・URL応答監視:応答コード、応答文字列、応答時間
 ・画面遷移監視:画面遷移(シナリオ)の正常性、応答時間

■インフラの監視
 (1)リソース監視
  ・メモリー:メモリー利用情報(実メモリ使用量、スワップ使用量など)
  ・ネットワークトラフィック:送受信byte/sec
  ・CPU関連:ロードアベレージ、CPU使用率
        (I/Oウエイト、システムCPU使用率、ユーザCPU使用率など)
  ・ディスク:ディスク空き容量、ディスク使用率、ディスク使用量、ディスク容量
 (2)プロセス監視
  ・プロセス所在:syslog, crond, ntpd, xinetd, sshd, httpd, mysqld, postmaster, portmap, nfs, 
          rpc.mountd, namedなど
  ・プロセス稼働:インターネット経由 httpd応答監視、httpd応答監視(サーバーローカル)、
          smtp応答監視、Oracle応答監視など
  ・セッション数:httpdセッション数
 (3)ログ監視
  ・ログ:messages監視、Oracleログ監視、tomcatログ監視、アプリケーション監視 など

■sar
 ・設定ファイル:  /etc/sysconfig/sysstat  
 ・CRON  : /etc/cron.d/sysstat

# The first element of the path is a directory where the debian-sa1
# script is located
PATH=/usr/lib/sysstat:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin

# Activity reports every 10 minutes everyday
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

# Additional run at 23:59 to rotate the statistics file
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2

・出力フォルダ:/var/log/sysstat/saXX

・起動状況確認:systemctl status sysstat
・有効化:systemctl status sysstat
・起動: systemctl start sysstat