ファイル生成時間(RPM)をダウンロード時間からビルド時間に変更

ファイル生成時間(RPM)をダウンロード時間からビルド時間に変更

私は自分自身の内部リポジトリを作成してそれを提供し、createrepo希望的にJavaリポジトリを提供します。

JREおよびJDKパッケージの自動ダウンロードスタックオーバーフローで説明されているダウンロードされた時点のタイムスタンプを含むファイルが残っていました。ファイル生成時間は、ダウンロードスクリプトが実行される時間に設定されます。

さらなる処理のために、タイムスタンプをRPMパッケージのビルド時間に設定したいと思います(...、、などを介してクエリできるようls -alll--full-time

ファイル生成時間(RPM)をダウンロード時間からビルド時間に自動的に変更するには?

ベストアンサー1

いくつかの研究の最後に、RPMでビルド時間を照会できることがわかりましたrpm -qip

BUILDTIME=$(rpm -qip --nosignature ${FILENAME} | grep -i "Build Date  : " | sed -e 's/Build Date  : //g')
echo ${BUILDTIME}

このdateコマンドは、指定された日付と時刻の文字列の形式を再指定できます。

TIMESTAMP=$(date --date="${BUILDTIME}" "+%Y%m%d%H%M")
echo ${TIMESTAMP}

後でコマンドと一緒に使用できますtouch

touch -m -a -t ${TIMESTAMP} ${FILENAME}

特定のディレクトリ内のすべてのファイルを繰り返すことで、含まれるすべてのパッケージのすべての作成時間を一覧表示して自動的に変更できます。

#!/bin/bash

for FILENAME in *.rpm; do

    echo ${FILENAME}

    BUILDTIME=$(rpm -qip --nosignature ${FILENAME} | grep -i "Build Date  : " | sed -e 's/Build Date  : //g')
    echo ${BUILDTIME}

    TIMESTAMP=$(date --date="${BUILDTIME}" "+%Y%m%d%H%M")
    echo ${TIMESTAMP}

    touch -m -a -t ${TIMESTAMP} ${FILENAME}

done

おすすめ記事