dnfコマンドで”Less than 1000 bytes/sec transferred the last 30 seconds”を言われるのを無視したい


openEuler 20.03 LTS環境のメンテナンスのため、久しぶりに起動して「dnf update」を実行した。

すると、大きめのファイルのダウンロードで「Less than 1000 bytes/sec transferred the last 30 seconds」と言われていた。

しかし、単純に中国サーバなので遅いだけなので、この速度制限をどうにかしたい。

/etc/dnf/dnf.conf の[main]セクションに「minrate=1」を追加することで、最低速度が1bytesとなり速度制限が実質解除となった。

また、openeular 20.03lts sp2環境でアップデートしたらfuse3関連でエラーとなった。

[root@openeuler ~]# dnf check-update
Last metadata expiration check: 0:12:39 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Obsoleting Packages
fuse.x86_64                             2.9.9-3.oe1                   OS
    fuse.x86_64                         2.9.9-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   OS
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   everything
    fuse.x86_64                         2.9.9-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   everything
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse3.x86_64                            3.9.2-3.oe1                   everything
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
Security: kernel-4.19.90-2203.5.0.0143.oe1.x86_64 is an installed security update
Security: kernel-4.19.90-2110.3.0.0116.oe1.x86_64 is the currently running version
[root@openeuler ~]# dnf update -y
Last metadata expiration check: 0:12:44 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Error:
 Problem: cannot install both fuse-2.9.9-3.oe1.x86_64 and fuse-2.9.9-4.oe1.x86_64
  - cannot install the best update candidate for package fuse-common-3.9.2-4.oe1.x86_64
  - cannot install the best update candidate for package fuse-2.9.9-4.oe1.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
[root@openeuler ~]#

調べて見ると公式FAQに記載があった。

ただ、文字が抜けてたりして実行できない

[root@openeuler ~]# dnf fuse fuse3 fuse-common
No such command: fuse. Please use /usr/bin/dnf --help
It could be a DNF plugin command, try: "dnf install 'dnf-command(fuse)'"
[root@openeuler ~]# dnf upgrade fuse fuse3 fuse-common
Last metadata expiration check: 0:14:02 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Package fuse3 available, but not installed.
No match for argument: fuse3
Error:
 Problem: cannot install both fuse-2.9.9-3.oe1.x86_64 and fuse-2.9.9-4.oe1.x86_64
  - cannot install the best update candidate for package fuse-common-3.9.2-4.oe1.x86_64
  - cannot install the best update candidate for package fuse-2.9.9-4.oe1.x86_64
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
[root@openeuler ~]#

こちらではどうか?

[root@openeuler ~]# dnf downgrade fuse
Last metadata expiration check: 0:15:07 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Dependencies resolved.
================================================================================
 Package           Architecture   Version              Repository          Size
================================================================================
Installing dependencies:
 fuse3             x86_64         3.9.2-3.oe1          everything         113 k
     replacing  fuse-common.x86_64 3.9.2-4.oe1
Downgrading:
 fuse              x86_64         2.9.9-3.oe1          OS                 139 k
     replacing  fuse-common.x86_64 3.9.2-4.oe1
 fuse-help         x86_64         2.9.9-3.oe1          OS                  20 k

Transaction Summary
================================================================================
Install    1 Package
Downgrade  2 Packages

Total download size: 272 k
Is this ok [y/N]: y
Downloading Packages:
(1/3): fuse-help-2.9.9-3.oe1.x86_64.rpm          63 kB/s |  20 kB     00:00
(2/3): fuse3-3.9.2-3.oe1.x86_64.rpm             196 kB/s | 113 kB     00:00
(3/3): fuse-2.9.9-3.oe1.x86_64.rpm               89 kB/s | 139 kB     00:01
--------------------------------------------------------------------------------
Total                                           173 kB/s | 272 kB     00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Downgrading      : fuse-help-2.9.9-3.oe1.x86_64                           1/6
  Downgrading      : fuse-2.9.9-3.oe1.x86_64                                2/6
  Running scriptlet: fuse-2.9.9-3.oe1.x86_64                                2/6
  Installing       : fuse3-3.9.2-3.oe1.x86_64                               3/6
  Running scriptlet: fuse3-3.9.2-3.oe1.x86_64                               3/6
  Cleanup          : fuse-2.9.9-4.oe1.x86_64                                4/6
  Running scriptlet: fuse-2.9.9-4.oe1.x86_64                                4/6
  Obsoleting       : fuse-common-3.9.2-4.oe1.x86_64                         5/6
  Cleanup          : fuse-help-2.9.9-4.oe1.x86_64                           6/6
  Running scriptlet: fuse-help-2.9.9-4.oe1.x86_64                           6/6
  Verifying        : fuse-2.9.9-3.oe1.x86_64                                1/6
  Verifying        : fuse-2.9.9-4.oe1.x86_64                                2/6
  Verifying        : fuse-common-3.9.2-4.oe1.x86_64                         3/6
  Verifying        : fuse-help-2.9.9-3.oe1.x86_64                           4/6
  Verifying        : fuse-help-2.9.9-4.oe1.x86_64                           5/6
  Verifying        : fuse3-3.9.2-3.oe1.x86_64                               6/6

Downgraded:
  fuse-2.9.9-3.oe1.x86_64              fuse-help-2.9.9-3.oe1.x86_64

Installed:
  fuse3-3.9.2-3.oe1.x86_64

Complete!
[root@openeuler ~]# dnf check-update
Last metadata expiration check: 0:15:17 ago on Fri 15 Apr 2022 05:08:37 PM JST.

fuse.x86_64                            2.9.9-4.oe1                        update
fuse-help.x86_64                       2.9.9-4.oe1                        update
fuse3.x86_64                           3.9.2-4.oe1                        update
Security: kernel-4.19.90-2203.5.0.0143.oe1.x86_64 is an installed security update
Security: kernel-4.19.90-2110.3.0.0116.oe1.x86_64 is the currently running version
[root@openeuler ~]#

で、もう1回アップデートをかけてみたら成功した

[root@openeuler ~]# dnf update -y
Last metadata expiration check: 0:16:25 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Dependencies resolved.
================================================================================
 Package             Architecture   Version                Repository      Size
================================================================================
Upgrading:
 fuse                x86_64         2.9.9-4.oe1            update         136 k
 fuse-help           x86_64         2.9.9-4.oe1            update          13 k
 fuse3               x86_64         3.9.2-4.oe1            update         112 k
Installing dependencies:
 fuse-common         x86_64         3.9.2-4.oe1            update         9.2 k
Installing weak dependencies:
 fuse3-help          x86_64         3.9.2-4.oe1            update          14 k

Transaction Summary
================================================================================
Install  2 Packages
Upgrade  3 Packages

Total download size: 284 k
Downloading Packages:
(1/5): fuse-common-3.9.2-4.oe1.x86_64.rpm        19 kB/s | 9.2 kB     00:00
(2/5): fuse3-help-3.9.2-4.oe1.x86_64.rpm         28 kB/s |  14 kB     00:00
(3/5): fuse-help-2.9.9-4.oe1.x86_64.rpm          81 kB/s |  13 kB     00:00
(4/5): fuse-2.9.9-4.oe1.x86_64.rpm              190 kB/s | 136 kB     00:00
(5/5): fuse3-3.9.2-4.oe1.x86_64.rpm             271 kB/s | 112 kB     00:00
--------------------------------------------------------------------------------
Total                                           308 kB/s | 284 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : fuse-common-3.9.2-4.oe1.x86_64                         1/8
  Upgrading        : fuse-help-2.9.9-4.oe1.x86_64                           2/8
  Installing       : fuse3-help-3.9.2-4.oe1.x86_64                          3/8
  Upgrading        : fuse3-3.9.2-4.oe1.x86_64                               4/8
  Running scriptlet: fuse3-3.9.2-4.oe1.x86_64                               4/8
  Upgrading        : fuse-2.9.9-4.oe1.x86_64                                5/8
  Running scriptlet: fuse-2.9.9-4.oe1.x86_64                                5/8
  Cleanup          : fuse-2.9.9-3.oe1.x86_64                                6/8
  Running scriptlet: fuse-2.9.9-3.oe1.x86_64                                6/8
  Cleanup          : fuse-help-2.9.9-3.oe1.x86_64                           7/8
  Cleanup          : fuse3-3.9.2-3.oe1.x86_64                               8/8
  Running scriptlet: fuse3-3.9.2-3.oe1.x86_64                               8/8
  Verifying        : fuse-common-3.9.2-4.oe1.x86_64                         1/8
  Verifying        : fuse3-help-3.9.2-4.oe1.x86_64                          2/8
  Verifying        : fuse-2.9.9-4.oe1.x86_64                                3/8
  Verifying        : fuse-2.9.9-3.oe1.x86_64                                4/8
  Verifying        : fuse-help-2.9.9-4.oe1.x86_64                           5/8
  Verifying        : fuse-help-2.9.9-3.oe1.x86_64                           6/8
  Verifying        : fuse3-3.9.2-4.oe1.x86_64                               7/8
  Verifying        : fuse3-3.9.2-3.oe1.x86_64                               8/8

Upgraded:
  fuse-2.9.9-4.oe1.x86_64 fuse-help-2.9.9-4.oe1.x86_64 fuse3-3.9.2-4.oe1.x86_64

Installed:
  fuse-common-3.9.2-4.oe1.x86_64          fuse3-help-3.9.2-4.oe1.x86_64

Complete!
[root@openeuler ~]# rpm -qa|grep fuse
fuse3-3.9.2-4.oe1.x86_64
fuse-common-3.9.2-4.oe1.x86_64
fuse3-help-3.9.2-4.oe1.x86_64
fuse-2.9.9-4.oe1.x86_64
fuse-help-2.9.9-4.oe1.x86_64
[root@openeuler ~]#

ただ・・・もう1回「dnf check-update」を実行するとこうなるんだけど、なんなんだ・・・

[root@openeuler ~]# dnf check-update
Last metadata expiration check: 0:17:13 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Obsoleting Packages
fuse.x86_64                             2.9.9-3.oe1                   OS
    fuse.x86_64                         2.9.9-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   OS
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   everything
    fuse.x86_64                         2.9.9-4.oe1                   @update
fuse.x86_64                             2.9.9-3.oe1                   everything
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse3.x86_64                            3.9.2-3.oe1                   everything
    fuse-common.x86_64                  3.9.2-4.oe1                   @update
fuse3.x86_64                            3.9.2-3.oe1                   everything
    fuse3.x86_64                        3.9.2-4.oe1                   @update
Security: kernel-4.19.90-2203.5.0.0143.oe1.x86_64 is an installed security update
Security: kernel-4.19.90-2110.3.0.0116.oe1.x86_64 is the currently running version
[root@openeuler ~]#

うーん???

[root@openeuler ~]# rpm -qa|grep fuse
fuse3-3.9.2-4.oe1.x86_64
fuse-common-3.9.2-4.oe1.x86_64
fuse3-help-3.9.2-4.oe1.x86_64
fuse-2.9.9-4.oe1.x86_64
fuse-help-2.9.9-4.oe1.x86_64
[root@openeuler ~]# dnf remove fuse3-3.9.2-4.oe1.x86_64 fuse3-help-3.9.2-4.oe1.x86_64
Dependencies resolved.
================================================================================
 Package            Architecture   Version                Repository       Size
================================================================================
Removing:
 fuse3              x86_64         3.9.2-4.oe1            @update         377 k
 fuse3-help         x86_64         3.9.2-4.oe1            @update         5.0 k

Transaction Summary
================================================================================
Remove  2 Packages

Freed space: 382 k
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Erasing          : fuse3-3.9.2-4.oe1.x86_64                               1/2
  Running scriptlet: fuse3-3.9.2-4.oe1.x86_64                               1/2
  Erasing          : fuse3-help-3.9.2-4.oe1.x86_64                          2/2
  Running scriptlet: fuse3-help-3.9.2-4.oe1.x86_64                          2/2
  Verifying        : fuse3-3.9.2-4.oe1.x86_64                               1/2
  Verifying        : fuse3-help-3.9.2-4.oe1.x86_64                          2/2

Removed:
  fuse3-3.9.2-4.oe1.x86_64             fuse3-help-3.9.2-4.oe1.x86_64

Complete!
[root@openeuler ~]# rpm -qa|grep fuse
fuse-common-3.9.2-4.oe1.x86_64
fuse-2.9.9-4.oe1.x86_64
fuse-help-2.9.9-4.oe1.x86_64
[root@openeuler ~]#

fuseは2.9.9-3.oe1があるけどfuse-commonにはない

[root@openeuler ~]# dnf downgrade fuse-help-2.9.9-3.oe1 fuse-2.9.9-3.oe1 fuse-common-2.9.9-3.oe1
Last metadata expiration check: 0:24:30 ago on Fri 15 Apr 2022 05:08:37 PM JST.
No package fuse-common-2.9.9-3.oe1 available.
Dependencies resolved.
================================================================================
 Package           Architecture   Version              Repository          Size
================================================================================
Installing dependencies:
 fuse3             x86_64         3.9.2-3.oe1          everything         113 k
     replacing  fuse-common.x86_64 3.9.2-4.oe1
Downgrading:
 fuse              x86_64         2.9.9-3.oe1          OS                 139 k
     replacing  fuse-common.x86_64 3.9.2-4.oe1
 fuse-help         x86_64         2.9.9-3.oe1          OS                  20 k

Transaction Summary
================================================================================
Install    1 Package
Downgrade  2 Packages

Total download size: 272 k
Is this ok [y/N]: n
Operation aborted.
[root@openeuler ~]#
[root@openeuler ~]# dnf --showduplicates list fuse-common
Last metadata expiration check: 0:25:15 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Installed Packages
fuse-common.x86_64                      3.9.2-4.oe1                      @update
Available Packages
fuse-common.x86_64                      3.9.2-4.oe1                      update
[root@openeuler ~]# dnf --showduplicates list fuse
Last metadata expiration check: 0:25:24 ago on Fri 15 Apr 2022 05:08:37 PM JST.
Installed Packages
fuse.x86_64                        2.9.9-4.oe1                        @update
Available Packages
fuse.src                           2.9.9-3.oe1                        source
fuse.x86_64                        2.9.9-3.oe1                        OS
fuse.x86_64                        2.9.9-3.oe1                        everything
fuse.x86_64                        2.9.9-4.oe1                        update
[root@openeuler ~]#

解決できなさそうだなぁ・・・

PowerShellにパスワード文字列を直接書かない手法


PowerShellで用意されているGet-Credential 関連を駆使して、PowerShellスクリプト内に直接パスワードを書かないで済む手法を作成した。

スクリプトを配置したディレクトリにscript.cred というファイルを作り、そこに暗号化されたパスワード文字列を配置する、という仕組み。

$authfile=$PSScriptRoot+".\script.cred"
$username="admin" #ユーザ名
$passwdstr="" # この変数にパスワード文字列が入る。
if((Test-Path $authfile) -eq $false){
    $creds = Get-Credential -UserName $username -Message $($username+"ユーザのパスワードを入力してください")
    $creds.Password | ConvertFrom-SecureString | Set-Content -Path $authfile | Out-Null
    $passwdstr=[Runtime.InteropServices.Marshal]::PtrToStringBSTR([Runtime.InteropServices.Marshal]::SecureStringToBSTR($creds.Password))
}else{
    $passwdstr=[Runtime.InteropServices.Marshal]::PtrToStringBSTR([Runtime.InteropServices.Marshal]::SecureStringToBSTR($(Get-Content $authfile | ConvertTo-SecureString)))
}

# この段階の $passwdstr には暗号化されていないパスワード文字列が入っている

なお、メモリ上の$passwdstr には暗号化されていない文字列が保存されているため、そこは注意が必要。

CommvaultのREST APIをPowerShellで使って見る


Commvaultバックアップの操作にREST APIを使うことができる。

・Commvault V11SP24の「REST API Overview
Commvault Rest APIの出力サンプル群

ログインして、指定したクライアントのサブクライアント情報を取得するPowerShellで作成してみた。

# CommCellユーザ情報
$restapiuser="admin"
$restapipasswd="パスワード"

# REST APIで使用するURL
# どちらを使うかについて https://documentation.commvault.com/11.24/expert/45592_available_web_services_for_rest_api.html
#$restapiurlbase="http://~:81/SearchSvc/CVWebService.svc/"
$restapiurlbase="http://~/webconsole/api/"

# 検索用文字列
$clientname="クライアント名"

# CommCell環境にログイン
$restapipasswdbase64=[Convert]::ToBase64String(([System.Text.Encoding]::Default).GetBytes($restapipasswd))
$headers=@{
    "Accept"="application/json"
    "Content-Type"="application/json"
}
$loginReq = @{
    username=$restapiuser
    password=$restapipasswdbase64
}
$loginresponse=Invoke-RestMethod -Method post -Uri $($restapiurlbase+"Login") -Body $($loginReq|ConvertTo-Json) -ContentType 'application/json' -Headers $headers

# 指定クライアントのサブクライアント情報取得
$headers=@{
    "Accept"="application/json"
    "Authtoken"=$loginresponse.token
}
$response=Invoke-RestMethod -Method Get -Uri $($restapiurlbase+"Subclient?clientName="+$clientname) -Headers $headers

# $response.subClientProperties.subClientEntity にサブクライアントの情報が入っているが
# 複数のサブクライアントがあると $response.subClientProperties.subClientEntity.subclientName が複数行になるので注意

# 表示
$response.subClientProperties.subClientEntity | ForEach-Object {
    $subcliententory=$_
    Write-host $subcliententory
 }

# CommCellログアウト
$headers=@{
    "Accept"="application/json"
    "Authtoken"=$loginresponse.token
}
$logoutresponse=Invoke-RestMethod -Method post -Uri $($restapiurlbase+"Logout") -Headers $headers

ただ、このスクリプトを使うとCommvault Event viewerに表示されるログイン情報が「Machine:unknown Locale:unknown」となる。

これを設定できるか調べて見たが、無いように思える。

Oracle Cloud上のOracle Linux 8環境でレポジトリを追加する


Oracle Cloud上でOracle Linux 8を展開するとき、Oracleが提供するプラットフォームイメージ を使用する。

Oracle-Linux-8.5-aarch64-2022.03.17-1 を使用したところ、CLIのレポジトリ一覧表示に変化があった。

$ sudo dnf repolist --all
This system is receiving updates from OSMS server.
repo id                                  repo name                       status
ol8_addons-aarch64                       Oracle Linux 8 Add ons (aarch64 enabled
ol8_appstream-aarch64                    Oracle Linux 8 Application Stre enabled
ol8_baseos_latest-aarch64                Oracle Linux 8 BaseOS Latest (a enabled
ol8_ksplice-aarch64                      Ksplice for Oracle Linux 8 (aar enabled
ol8_mysql80-aarch64                      MySQL 8.0 for Oracle Linux 8 (a enabled
ol8_mysql80_connectors_community-aarch64 MySQL 8.0 Connectors for Oracle enabled
ol8_mysql80_tools_community-aarch64      MySQL 8.0 Tools Community for O enabled
ol8_oci_included-aarch64                 Oracle Software for OCI users o enabled
$

「This system is receiving updates from OSMS server.」というメッセージが追加されていて、有効化されているレポジトリしか表示されていない。

OSMSというのはOS Management System(OS管理) のことで、2020年ぐらいから組み込みが開始されていたもののレポジトリ管理までは行っていなかったものとなる。

リリース情報を確認すると2021年10月に関連する記載があった。


10月Oracle Linux 8プラットフォーム・イメージでデフォルトで有効になっているOS管理サービス・エージェント・プラグイン

2021年10月にリリースされたOracle Linux 8プラットフォーム・イメージ以降、Oracle Linux 8インスタンスのOracle Cloud Agent 1.16.0でOS管理サービス・エージェント・プラグインがデフォルトで有効になっています。

2021年10月(Oracle Cloud Agent 1.15.0以前を実行)より前に起動されたOracle Linux 8インスタンスの場合、OS管理サービス・エージェント・プラグインはデフォルトで無効になっています。無効化されたOracle Linux 8インスタンスのOS管理サービス・エージェント・プラグインは、Oracle Cloud Agent 1.16.0への更新後も無効のままです。

詳細は、OS管理の開始を参照してください。


ただ、「OS管理の開始 – 前提条件」には「OS管理は、Oracle Cloud Free Tierでは使用できません。」

使えてしまっている現状は正しいのか、誤りなのか、なやむところです・・・

それはさておき、「This system is receiving updates from OSMS server.」が表示される場合のレポジトリ追加は、まずは、Oracle Cloudのコンソール画面から実施する。

[インスタンスの詳細]-[OS管理]を開くと、パッチの状況が確認できる

レポジトリを追加する場合は「…」をクリックして表示される「OS管理詳細の表示」を選択する

[OS管理の詳細]で[ソフトウェア・ソース]を選択すると、現在enabledとなっているレポジトリ一覧が確認できる。

レポジトリを追加するには、ここの「追加」をクリックする。

追加したいレポジトリを選択し「追加」する。

一覧に追加されたことを確認します。

もちろんコマンドで確認しても追加されています。

$ sudo dnf repolist --all
This system is receiving updates from OSMS server.
repo id                                  repo name                       status
ol8_addons-aarch64                       Oracle Linux 8 Add ons (aarch64 enabled
ol8_appstream-aarch64                    Oracle Linux 8 Application Stre enabled
ol8_baseos_latest-aarch64                Oracle Linux 8 BaseOS Latest (a enabled
ol8_developer_epel-aarch64               Oracle Linux 8 EPEL Packages fo enabled
ol8_ksplice-aarch64                      Ksplice for Oracle Linux 8 (aar enabled
ol8_mysql80-aarch64                      MySQL 8.0 for Oracle Linux 8 (a enabled
ol8_mysql80_connectors_community-aarch64 MySQL 8.0 Connectors for Oracle enabled
ol8_mysql80_tools_community-aarch64      MySQL 8.0 Tools Community for O enabled
ol8_oci_included-aarch64                 Oracle Software for OCI users o enabled
$