変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

Linux

[CentOS8]AlmaLinuxへ移行

移行スクリプトがあったので

# curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
# bash ./almalinux-deploy.sh

ダウンロードするパッケージは1.5Gbytesくらいあるらしい。

しかし、インストール時にエラってしまったので、

epelとremiリポジトリィを無効化し、ついでに最新状態にしておいた。

# dnf config-manager --disable epel epel-modular remi-modular remi-safe
#dnf update

再度、移行スクリプトを実行するとうまくいったようだ。

# cat /etc/redhat-release
AlmaLinux release 8.6 (Sky Tiger)

このまま再起動すると、sshもscpもhttpdも繋がらない・・・と思ったけど、サービスの起動にとても時間がかかっていただけだった。

x-windowとか諸々入っている。xrdpサービスを起動すればリモートデスクトップでも繋がる。

けど、J1900,4GBだから遅いなぁ



[Oracle19c]プラガブル・データベースを・・・

サーバ起動後は

まずは、リスナーを起動

$ lsnrctl start
・・・
STATUS of the LISTENER
------------------------
・・・
Listener Parameter File   /usr/oracle/database/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/******/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=******)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully

次にCDBを起動

$ sqplus /NOLOG
SQL> startup;
*******

プラガブル・データベースの状態をチェック

SQL> show pdbs;
    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 ******  			  READ WRITE NO

とりあえず接続先をチェック。※多分 CDB$ROOTのハズ

SQL> show CON_NAME;

プラガブル・データベースを起動してみよう

SQL> alter pluggable database ****** open;
Pluggable database altered.

SQL> show pdbs;
    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 ******  			  READ WRITE NO

CDB作成時に作られたPDBは管理者名が不明で表領域もあるのかどうかも判らなかったので、

dbcaコマンドで別途にPDB(PDB1,PDB2)を追加してみた。

PDBの管理者名はpdbadminとか何となく判るものを作っておく。

表領域の作成にチェックを入れれば作ってくれるので便利。※手順は省略。

ここで、lsnrctl status を何度か叩くと、最後に各PDB名っぽいSERVICE_NAMEの情報が拾えるので

※今回はCDBのサービス名のドメイン名のマシン名の部分がPDB名に差し替えられていた。

そこからサーバのtnsnames.oraにPDB用の設定を手で追加。

※サーバで使わないハズだけど、サーバに元ネタとして置いておかないと新しいクライアントを作る時に悩むハズ。

PDB1 =
  (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ******)(PORT = 1521))
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = pdb1.******)
     )
  )

PDB2 =
  (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ******)(PORT = 1521))
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = pdb2.******)
     )
  )

本命のクライアントのtnsnames.oraを追記

PDB1 =
(DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP) (HOST = ******)(PORT = 1521))
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = pdb1.******)
   )
)

PDB2 =
(DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP) (HOST = ******)(PORT = 1521))
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = pdb2.******)
   )
)

どっちもほぼ同じで、HOSTのみ、各環境で判るドメイン名とかIPアドレスとかにしておかないといけない。※IPアドレスにすれば同一になるはず。

dbcaコマンドでは各PDBの管理者にDBA権限が付与されていないので、

$ sqlplus / as sysdba
SQL> alter session set container=${各PDB名}; ※だったかな?
SQL> GRANT DBA TO ${各PDBの管理者名};

で、それぞれのPDBの管理者にDBA権限を付加した後に

それぞれのPDBの管理者でPDBに入り

$ sqlplus ${管理者名}/${パスワード}@${PDB名}
SQL> CREATE TABLE TBL1 か TBL2
 (
 empno VARCHAR2(10) NOT NULL,
 empname VARCHAR2(50),
 gender_f NUMBER(1,0)
 ) 
;  2    3    4    5    6    7  
Table created.

な感じで、PDB1にTBL1、PDB2にTBL2を作成し、

A5から、

CDB:(接続文字列:orcl、 ユーザ:system)、

PDB1:(接続文字列:pdb1、ユーザ: pdbadmin)

PDB2:(接続文字列:pdb1、ユーザ: pdbadmin)

でORACLE(OCL経由)接続を作った。

※ORACLE直接接続は

各赤枠はクライアントのtnsnames.oraの通り

それぞれで、

select * from TBL1;
select * from TBL2;

してみたら、

CDBは共に無し

PDB1はTBL1のみ

PDB2はTBL2のみ

と予想通りの結果になった。

改めて、sqlplusでpdb1に接続してみよう

SQL> alter session set container=PDB1;
SQL> show pdbs;

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 4 PDB1 			  READ WRITE NO
※もう自分しかみえなくなっている
※CDBに戻ってPDBをこの状態で、自動起動にする
SQL> alter session set container=CDB$ROOT;
SQL> alter pluggable database all save state;

プラガブル・データベースを終了してみよう

SQL> alter pluggable database ****** close;
Pluggable database altered.

SQL> show pdbs;
    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 ****** 			  MOUNTED

CDBも終了、SQLPLUSも終了する

SQL> shutdown;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> quit

これで、startupすれば、今まで通りに使えるはず。

※多分

と、ここまで書いたものの・・・

ネットをググると、多種多様な結果がヒットするので、

  • ひたすらSQLPLUSでコマンドを打ち続ける人
  • ツールを使いつつSQLPLUSでコマンドを打ち続ける人
  • ツールのみの人

それぞれで、

各々データベースの構成も違うし、

設定ファイルの更新の有無も変わるし、

手順やコマンドも変わるし、

ここの内容は極一部の人にしか参考にならない様な気がしてきた。

うーむ、恐るべしは・・・・・・。



[Oracle19c]どうやって起動 するん?

まず、SQLPLUSからCONNECTしようとしたら

ORA-12162: TNS:net service name is incorrectly specified

原因は、ORACLE_SIDを環境変数に登録していなかったせいらしい。

~/.bash_profileに追加して

$ source ~/.bash_prodile
$ sqlplus /NOLOG
SQL> connect AS SYSDBA
Enter user-name: sys
Enter password: ****************
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area 2432695832 bytes
Fixed Size		    9137688 bytes
Variable Size		  570425344 bytes
Database Buffers	 1845493760 bytes
Redo Buffers		    7639040 bytes
Database mounted.
Database opened.
SQL> 

終わる時は、shutdown、quit。

さて、A5から直接接続できるか試してみたけど

ORA-12514: TNS:listener does not currently know of service requestion in connect description

から先に進めなかったので、

順当にOracleClientをインストし、

ORACLEデータベースをインストしたLINUXにあるtnsnames.oraから下記をコピペして、

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ***)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ****)
    )
  )
HOST = ***はPCからデータベースをインストしたサーバの名前かIPアドレス
SERVICE_NAME=****はそのまま使う。

PCの適当なフォルダにtnsnames.oraファイルを保存し、

保存先フォルダ名はユーザ環境変数「TNS_ADMIN」に保持。※システム環境変数の方がいいはず

ODBCデータソースアドミニストレイーターで、データソースを新規追加する。

ORACLEクライアントを選択して

TNSサービス名にSID(ここではtnsnames.oraでORCLだから)を入れ、「接続テスト」
ユーザー名とパスワードを入れて
で、良かったらしい。

さて、A5では

な感じで「テスト接続」は、

だったので、【OK】して保存。

こんな調子で大丈夫なのか?と自分でもツッコミをいれたくなったけど

管理ツールタグを見れば

なので大丈夫らしい。

あとはPDBにテーブルを作って、アクセスできればOKかな?



[Linux]xrdpインスト

1.CentOS7の場合

epelを追加

# yum -y install epel-release
## yumコマンドに --enablerepo=epel オプションを指定した場合のみ epel が有効になる様に
# vi /etc/yum.repos.d/epel.repo
enable = 1 ⇒ 0 に修正。

パッケージをインスト

# yum -y --enablerepo=epel install xrdp
# yum -y --enablerepo=epel install tigervnc-server
## エラーが起きやすい設定を修正
# vi /etc/xrdp/xrdp.ini
max_bpp=32 ⇒ 24 に修正
# systemctl start xrdp
# systemctl enable xrdp

ファイアウォールの設定変更

# firewall-cmd --permanent --zone=public --add-port=3389/tcp
# firewall-cmd --reload

オマケで

yum update

2.CentOS8の場合

epelを追加

# dnf -y install epel-release
## dnfコマンドに --enablerepo=epel オプションを指定した場合のみ epel が有効になる様に
# vi /etc/yum.repos.d/epel.repo
enable = 1 ⇒ 0 に修正。

パッケージをインスト

# dnf -y --enablerepo=epel install xrdp
# dnf -y --enablerepo=epel install tigervnc-server
## エラーが起きやすい設定を修正
# vi /etc/xrdp/xrdp.ini
max_bpp=32 ⇒ 24 に修正
# systemctl start xrdp
# systemctl enable xrdp

ファイアウォールの設定変更

# firewall-cmd --permanent --zone=public --add-port=3389/tcp
# firewall-cmd --reload

オマケで

# dnf update


[Oracle19c]Linux版

AlmaLinux9やOracleLinux9のように新しいOSでは

アレが無い、コレが無いと、dnfがお得意の関連パッケージの自動インストール機能がうまく機能していない。

しかし、古いCentOS7なら、あまり面倒なことをせずに19Cのインストーラの初期画面まで進んだ。

※但し

  • 前提条件のチェックを全てクリアするために、
  • CPU4個、メモリ16GB、スワップ領域16GBに増量。
    • パッケージのアップデート時にX-Windowの画面が固まり操作不能になるので、CPU+3個
    • インスト時にスワップ領域不足の警告が出るのでスワップ領域を増量。
      • 8GBではstartup時にシェアメモリ不足(ORA-27104)が発生。更に増量(16GB)
    • インスト時にシェアメモリ不足の警告が出るのでメモリ増量してカーネルパラメータを再計算
  • リスナー作成直後に再起動するとリスナが起動してないので
    • /etc/hostsにノード名が無かったので追記し、lsnrctl startする。
  • アドバンスモードではOracle Enterprise Manager のポートに何を指定してもダメだったので、チェックを外した。

参考1:CentOS7 Stream Oracle Database 19c : インストール では日本語でインストーラが動いた。

CentOS8は OSのサポートが2021年12月末で終了し、https://ftp.riken.jp/Linux/centos/8.5.2111/isos/x86_64/ のリンクも無くなったので、

CentOS8 Streamを使う事になる。

CentOS Stream 8 へ https://ftp.riken.jp/Linux/centos/8-stream/isos/x86_64/

参考2-1:Oracle Dtabase 19c(CentOS8) は、最終的には「なぜかうまくいかない」。

※参考2-1は、メモリ8GBで試行している。

以下、変更点

1.カーネルパラメータの設定方法

元々は固定値で設定していたが、割り当てたメモリ量から計算する様に修正。

# MEMTOTAL=$(free -b | sed -n '2p' | awk '{print $2}')
# SHMMAX=$(expr $MEMTOTAL / 2)
# SHMMNI=4096
# PAGESIZE=$(getconf PAGE_SIZE)
# cat > /etc/sysctl.d/50-oracle.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = $SHMMAX
kernel.shmall = $(expr \( $SHMMAX / $PAGESIZE \) \* \( $SHMMNI / 16 \))
kernel.shmmni = $SHMMNI
kernel.sem = 250 32000 100 128
kernel.panic_on_oops = 1
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF

2.インストールするパッケージの追加

インストーラを起動するとエラーが出たので、それっぽいパッケージを追加。

# dnf -y install libnsl

ダウンロードしたrpmをインストールする手順が抜けていたので追加

# dnf localinstall  *.rpm       ※個別にrpmファイルをしてして実行したけど、多分これでいいはず

差し替えるJDKのパスを

# cp -r /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-11.el8.x86_64/jre /u01/app/oracle/product/19.3.0/dbhome_1/jdk/jre

hostsに自分のマシン名が無いので

127.0.0.1   ******.******.****** localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         ******.******.****** localhost localhost.localdomain localhost6 localhost6.localdomain6

ここまでやっても、

「インストール」ボタンを押して7%まで進んだあたりで

「ファイル%filename%が見つかりません」

と出るエラーが出る、「継続」押下で続けるが・・・

100%まで進んるのになぁ
OpenJDKに差し替えて動いたけど、どこかで互換性が無くて失敗したっぽい。
DBCAの構成で失敗してるので、日本語対応のJREに差し替えたせいかもしれない。

※メモリ16GBでの動作は未確認。

参考2ー2:CentOS8 Stream Oracle Database 19c : インストール のページはインスト直前まで。

login: oracle
Password:xxxxxxx

$ vi ~/.bash_profile
# 最終行に追記
umask 022
export ORACLE_BASE=/u01/app/oracle

# インストール用 Dir 作成
$ mkdir database

LANG=Cを付けてインストーラを起動すると真っ白になる。とりあえず、保留。

参考2ー3:CentOS8 Oracle Database 19c : インストール すると日本語文字化けするので

cd database
$ unzip LINUX.X64_193000_db_home.zip
$ export CV_ASSUME_DISTID=RHEL8.2
$ export LANG=C
$ ./runInstaller

CentOS8系では、インストーラのJREの日本語フォントとX-Windowの日本語フォントがうまくマッピングされず日本語モードでは文字化けするが、英語モードでのインストールなら問題無し。

しかし、メモリ8GBで得たシェアメモリの容量ではstartupでシェアメモリの容量不足となり16GBに増量し、カーネルパラメータを再計算したところ、startupに成功した。

CentOS8 stream でメモリ8GBでも使えるカーネルパラメータの計算方法があればいいんだけど。

そんな訳で、CentOS8系は微妙。

参照2-3に参照2-1のJRE差し替えを混ぜるといいのかもしれない。

Hyper-Vの起動画面よりもXRDPでWindowsのリモートデスクトップ越しにインストーラを起動した方がマウスカーソルもオーバーラップするしコピペもできインストールもスムーズ。

・・・

と書いたものの、実際やってみると手順通りにヌルっとインストールできず、ドコかでアハってしまう。

rootでシェル起動してもいい?ってメッセージをちょっと放置したら画面が固まるけど、それはOSアップデートが後追いでやってきたせいな気もする。

yumやdnfのアップデートでおきる僅かな修正で何かがうまくいっていないんだろう。

インストーラのチューニングが攻めすぎなんだろうね。

Linux「9」なんて無理そうだから、ここで調査を終了。

とりあえず、CentOS7がアンパイだ。



[CentOS]どうしよう

開発もサポートも切れるので乗り換えないといけない。

とりあえず、AlmaLinux 9.x に乗り換える予定。

GUIをインストするには

# dnf grouplist

でグループパッケージを探してみるが、GNOME Desktopは無かったので

# dnf groupinstall "SERVER with GUI"

で我慢する。

XRDPをインストしようとしたらパッケージが無いとか散々。

ぐぐってみるとちゃんとAlmaLinux9でのインストページがあった。

epelリポジトリィを追加するのを忘れていたせいか。

無事、リモートデスクトップに繋がったものの、コレジャナイ感が漂う。



【SSL】期限切れ→仕様変更→SSL✕のコンボ

また電子証明書の期限切れ

cronで自動化してあったハズなのに?

# /usr/bin/certbot renew
# systemctl restart httpd

ブログにログインすらできない。

再起動してもダメ

でもしばらく経ったらOKだった。

手動でdnf updateするとAppStreamが見えないとか言い出す

ググってみるとURLが変わったらしい

/etc/yum.repos.dをバックアップし

sed -i -e 's/mirrorlist=/#mirrorlist=/g' -e 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

※元ネタ

CentOS8 で dnf update が失敗する件

dnf updateしたら、1826個もあった。変わったのは相当前だったのかもしれない(笑

2021/11/04にcerbot-auto newしていたからその後らしいけど。

  廃止              : centos-release-8.2-2.2004.0.1.el8.x86_64        1821/1826
  廃止              : centos-repos-8.2-2.2004.0.1.el8.x86_64          1822/1826
警告: /etc/yum.repos.d/CentOS-fasttrack.repo は /etc/yum.repos.d/CentOS-fasttrack.repo.rpmsave として保存されました。
警告: /etc/yum.repos.d/CentOS-centosplus.repo は /etc/yum.repos.d/CentOS-centosplus.repo.rpmsave として保存されました。
警告: /etc/yum.repos.d/CentOS-Sources.repo は /etc/yum.repos.d/CentOS-Sources.repo.rpmsave として保存されました。
警告: /etc/yum.repos.d/CentOS-PowerTools.repo は /etc/yum.repos.d/CentOS-PowerTools.repo.rpmsave として保存されました。
警告: /etc/yum.repos.d/CentOS-HA.repo は /etc/yum.repos.d/CentOS-HA.repo.rpmsave として保存されました。
警告: /etc/yum.repos.d/CentOS-Extras.repo は /etc/yum.repos.d/CentOS-Extras.repo.rpmsave として保存されました。
警告: /etc/yum.repos.d/CentOS-Devel.repo は /etc/yum.repos.d/CentOS-Devel.repo.rpmsave として保存されました。
警告: /etc/yum.repos.d/CentOS-CR.repo は /etc/yum.repos.d/CentOS-CR.repo.rpmsave として保存されました。
警告: /etc/yum.repos.d/CentOS-Base.repo は /etc/yum.repos.d/CentOS-Base.repo.rpmsave として保存されました。
警告: /etc/yum.repos.d/CentOS-AppStream.repo は /etc/yum.repos.d/CentOS-AppStream.repo.rpmsave として保存されました

URLの変更が巻き戻されとる!

もう1回

# sed -i -e 's/mirrorlist=/#mirrorlist=/g' -e 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
# dnf update
CentOS Linux 8 - AppStream                                4.8 MB/s | 8.4 MB     00:01
CentOS Linux 8 - BaseOS                                   4.7 MB/s | 4.6 MB     00:00
CentOS Linux 8 - Extras                                   6.3 kB/s | 1.5 kB     00:00
Remi's Modular repository for Enterprise Linux 8 - x86_64 3.0 MB/s | 3.1 kB     00:00
GPG 鍵 0x5F11735A をインポート中:
 Userid     : "Remi's RPM repository <remi@remirepo.net>"
 Fingerprint: 6B38 FEA7 231F 87F5 2B9C A9D8 5550 9759 5F11 735A
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8
これでよろしいですか? [y/N]: y
Remi's Modular repository for Enterprise Linux 8 - x86_64 153 kB/s | 973 kB     00:06
Safe Remi's RPM repository for Enterprise Linux 8 - x86_6 2.3 MB/s | 3.1 kB     00:00
GPG 鍵 0x5F11735A をインポート中:
 Userid     : "Remi's RPM repository <remi@remirepo.net>"
 Fingerprint: 6B38 FEA7 231F 87F5 2B9C A9D8 5550 9759 5F11 735A
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8
これでよろしいですか? [y/N]: y
Safe Remi's RPM repository for Enterprise Linux 8 - x86_6 474 kB/s | 2.1 MB     00:04
依存関係が解決しました。
行うべきことはありません。
完了しました!
#

しかも1826はMAX値なのか1826番目の関連パッケージが多すぎるのか?

以後、1826/1826表示が延々続く・・・(汗

更にcronが消えていたことも判明

# /etc/rc.d/init.d/crond status
-bash: /etc/rc.d/init.d/crond: そのようなファイルやディレクトリはありません

CentOS7以降はcronからcronie-noanacronに変わったので、

CentOS7以降はcronからcronie-anacronに変わったので、

自動 ndf updateで削除されてしまったのかな?

cronie-noanacronをインストしcronie-anacronをアンスコしてみた。

# sudo dnf install cronie-noanacron
メタデータの期限切れの最終確認: 0:01:41 時間前の 2022年03月19日 22時30分50秒 に実施しまし た。
依存関係が解決しました。
==========================================================================================
 パッケージ                 アーキテクチャー バージョン            リポジトリー     サイズ
==========================================================================================
インストール:
 cronie-noanacron           x86_64           1.5.2-4.el8           baseos            19 k

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

ダウンロードサイズの合計: 19 k
インストール後のサイズ: 396
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
cronie-noanacron-1.5.2-4.el8.x86_64.rpm                    20 kB/s |  19 kB     00:00
------------------------------------------------------------------------------------------
合計                                                       20 kB/s |  19 kB     00:00
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                  1/1
  インストール中   : cronie-noanacron-1.5.2-4.el8.x86_64                              1/1
  検証             : cronie-noanacron-1.5.2-4.el8.x86_64                              1/1
インストール済みの製品が更新されています。

インストール済み:
  cronie-noanacron-1.5.2-4.el8.x86_64

完了しました!
# dnf remove cronie-anacron
依存関係が解決しました。
==========================================================================================
 パッケージ              Arch            バージョン              リポジトリー       サイズ
==========================================================================================
削除中:
 cronie-anacron          x86_64          1.5.2-4.el8             @anaconda           49 k

トランザクションの概要
==========================================================================================
削除  1 パッケージ

解放された容量: 49 k
これでよろしいですか? [y/N]: y
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                  1/1
  削除             : cronie-anacron-1.5.2-4.el8.x86_64                                1/1
  scriptletの実行中: cronie-anacron-1.5.2-4.el8.x86_64                                1/1
  検証             : cronie-anacron-1.5.2-4.el8.x86_64                                1/1
インストール済みの製品が更新されています。

削除しました:
  cronie-anacron-1.5.2-4.el8.x86_64

完了しました!
# systemctl restart crond
# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2022-03-19 22:42:46 JST; 4s ago
 Main PID: 120900 (crond)
    Tasks: 1 (limit: 23826)
   Memory: 1.2M
   CGroup: /system.slice/crond.service
           mq120900 /usr/sbin/crond -n
(push q)

※元ネタ

【CentOS7】Cron(cronie-noanacron)をインストール

CentOS8でファイルを定期的にバックアップするcronの設定

statusこまんどがqキー押下するまで待ちになっているのも謎だけど

ここまで書いて【更新】したら

サーバがオフラインらしいよぉ?と泣き言

あ、消したssl.confが復活しとる。

パッケージのssl.confは手元のSSL化したバーチャルホスト設定ファイルとうまくかみ合わないので

# NameVirtualHost *:80

# SSL
Listen 443 https

SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLSessionCache         shmcb:/run/httpd/sslcache(512000)
SSLSessionCacheTimeout  300
SSLRandomSeed startup file:/dev/random  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin

Include vhost/*.conf

な内容のvhost.confで代用している。

Include vhost/*.conf

だけ追記してもいいけどね。

なかなか面倒だなぁ

ps.2022/06/17

再びhttps期限切れ。

クローン化したのにどうしたのかな?

# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor prese>
   Active: active (running) since Sat 2022-03-19 22:42:46 JST; 2 months 29 days>
 Main PID: 120900 (crond)
    Tasks: 1 (limit: 23826)
   Memory: 13.1M
   CGroup: /system.slice/crond.service
           mq120900 /usr/sbin/crond -n

 6月 17 17:01:01 **********.*********.***** CROND[1338801]: (root) CMD (run-par>
・・・
 6月 17 21:05:01 **********.*********.***** crond[120900]: (curl) ERROR (getpwn>
・・・
# systemctl restart crond
# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2022-06-17 21:45:51 JST; 11s ago
 Main PID: 1350619 (crond)
    Tasks: 1 (limit: 23826)
   Memory: 1.2M
   CGroup: /system.slice/crond.service
           mq1350619 /usr/sbin/crond -n

 6月 17 21:45:51 **********.*********.***** systemd[1]: Started Command Scheduler.
 6月 17 21:45:51 **********.*********.***** crond[1350619]: (CRON) STARTUP (1.5.2)
 6月 17 21:45:51 **********.*********.***** crond[1350619]: (CRON) INFO (Syslog will be used instead of sendmail.)
 6月 17 21:45:51 **********.*********.***** crond[1350619]: (CRON) INFO (RANDOM_DELAY will be scaled with factor >
 6月 17 21:45:51 **********.*********.***** crond[1350619]: (CRON) INFO (running with inotify support)
 6月 17 21:45:51 **********.*********.***** crond[1350619]: (CRON) INFO (@reboot jobs will be run at computer's s>

何やらエラってたのでリスタート。

# /usr/bin/certbot renew
# systemctl restart httpd

で修復完了。

クローンのログを見ると

Jun 12 18:05:01 *********** crond[120900]: (curl) ERROR (getpwnam() failed - user unknown)

curlってユーザが無いということらしい。

wp-cron.phpを起動するトコで使っていたので、apacheに変えてみる。

certbotはログになかった???

時間が被って変になったのかもしれない毎月1日の04:03に変えてみる。

ps.2023/3/23

# dnf update
トランザクションの概要
================================================================================
インストール      6 パッケージ
アップグレード  561 パッケージ
削除              3 パッケージ

ダウンロードサイズの合計: 1.0 G
これでよろしいですか? [y/N]: y
・・・

ps.2023/08/31

なぜか証明書が更新されなかったのでコマンドラインから更新してみた。

# /usr/bin/certbot renew
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/****************.***
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Renewing an existing certificate for ssiscirine.iobb.net

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all renewals succeeded: 
  /etc/letsencrypt/********************.*** (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
※ここまでを見ると証明書の更新は成功したようだ・・・
Hook 'post-hook' reported error code 5
Hook 'post-hook' ran with error output:
 Invalid unit name "httpd
 " was escaped as "httpd\x0d" (maybe you should use systemd-escape?)
 Failed to reload httpd\x0d.service: Unit httpd\x0d.service not found.
※cronで指定したオプションがなぜか動き(ゴミファイルかな?)、しかも内容がマズかったらしい。ググってみるとapacheを起動しようとして失敗したようなので手動で再起動。
#  systemctl restart httpd

8/1のletsencryptのログを見ると

–post-hook “systemctl reload httpd”

が直後のCR(\x0d)を誤って

–post-hook “systemctl reload httpd\x0d”

に観えたらしい。

このpost-hookで失敗したので

ヤバイと思ったのか、ちゃんと更新できた証明書も巻き戻したらしい。

/etc/cron.d/letsencryptの改行をCRLFからLFに治す。

動作テストには –force-renew –dry-run オプションを付ければいいはず。



[git]コマンド

多分、こんな感じかな

  1. 参照系
    1. git clone ${リポジトリィ}
      • カレント・ディレクトリィにドコかのリポジトリィをコピる。
    1. git pull
      • リモートリポジトリの最新状態に更新
  2. 更新系
    1. とりあえずクローンする
    2. git checkout ${ブランチ}
      • 新たなブランチで履歴を作る時は、-b ${新しいブランチ} を使う
      • 既存のブランチでも、初回は git fetch ${ブランチ} で情報の取得が必要
    3. git add ${ファイル名}
      • コミット対象ファイルに追加
    4. git rm ${ファイル名}
      • コミット対象ファイルから削除
    5. git mv ${ファイル名}
      • コミット対象ファイル名の変更
    6. git commit -m ${メッセージ}
    7. git push origin ${ブランチ}
  3. 管理
    1. git init
      • カレント・ディレクトリィにリポジトリィを作る。
    2. git branch ${ブランチ}
      • ブランチを作る
      • ブランチを削除する時は -d ${ブランチ}

な感じで使えばいいかな



【CentOS8】え!

最近知ったけど、ホストOSの7は2024年までサポート期間が残ってるけど、ゲストOSで使ってる8は今年(2021)中にサポート終了だって!

Red Hat Developer Programに参加してRHELを最大16個をサブスク登録して使う?

CentOS Streamに移行する?

ん-めんどくさいけど、CentOSからCentOS Streamにコンバートできるらしいからコレで済ませてしまうかもしれない。

root@centos-linux# dnf install centos-release-stream
root@centos-linux# dnf swap centos-{linux,stream}-repos
root@centos-linux# dnf distro-sync
root@centos-stream# cat /etc/centos-release
CentOS Stream release 8

Windows 8と同じく短命なのか。(南無南無

CentOS-Xとかにすればいいのに。



【CentOS】USB ON/OFF

OctoPrintでWEBカメラのタイムラプスが照明の反射で見にくいので、USBライトをつけようと思うけど、スイッチでON・OFFが面倒なので、コマンドでON/OFFできないか?
調べてみました。

WindowsのUSBデバイスの取り外しっぽいコマンドの記事があった。

  1. lsusbコマンドでデバイス検索
    • デバイスに対応する {Bus}-{port}. … .{port} をメモメモ。
  2. デバイスのUSBポートを解放
    • echo -n {Bus}-{port}. … .{port} >/sys/bus/usb/drivers/usb/unbind
  3. デバイスのUSBポートを接続。
    • echo -n {Bus}-{port}. … .{port} >/sys/bus/usb/drivers/usb/bind

{Bus}-{port}. … .{port} の部分はlsusbの結果次第なので、1-1.2-3.4 と長かったり、1-2.3と短かったりするので、難しい。

これでUSBライトをON、OFFできたらいいな。

あ、OctoPrintのタイムラプスのソースをチョット書換えが必要かな・・・

SUDO問題どうしよう?

wget http://localhost;8089/ON とか wget http://localhost;8089/OFF すればいいのかな?

てか?USBライトでも装置名が出てくるのかな?




top