Altera o tempo de criação de arquivos (RPM) do tempo de download para o tempo de construção

0

Eu vou criar meu próprio serviço de repositório interno via createrepo e também quero fornecer um repositório Java.

O download dos pacotes JRE e JDK automaticamente e como descrito no Stack Overflow me deixa com arquivos que têm um timestamp do vez que eles foram baixados. O horário de criação dos arquivos é definido para o tempo de execução do script de download.

Para processamento adicional, gosto de ter os timestamps definidos para o tempo de compilação do pacote RPM (... para que eu possa consultá-los via ls -al , ll , --full-time , etc.).

Como alterar o tempo de criação de arquivos (RPM) do tempo de download para o tempo de criação automaticamente?

    
por U880D 30.07.2018 / 09:22

1 resposta

1

Após algumas pesquisas, descobri que posso consultar o tempo de compilação do RPM via rpm -qip .

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

O comando date pode reformatar a string de data e hora fornecida

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

para que possa ser usado posteriormente com o comando touch .

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

Ao iterar todos os arquivos dentro de um diretório específico, é possível listar todos os tempos de criação de todos os pacotes contidos e modificá-los automaticamente.

#!/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
    
por 30.07.2018 / 09:29