Debian

僅在超過特定時間時更新 apt-get 記憶體

  • December 11, 2021

我在debian上。僅當自上次更新以來的時間大於或小於使用直接命令的特定量時,我才想執行 apt-get update (也許還有其他東西),沒有 cron 技巧或類似的。

假設我對 apt-get previous state 一無所知,自作業系統安裝以來可能從未發布過更新,或者在 2 分鐘前手動觸發,或者由無人值守升級服務自動發布。

例如。

if(time > 30 min) apt-get update
if(time > 2 days) something else

這個問題類似於我在 askubuntu 中找到的另一個問題,但由於 debian config 中的設置不同,我找不到通知我上次更新命令何時發生的時間戳文件。

/var/cache/apt/pkgcache.bin每次執行時都會重新生成文件apt-get update(否則不會重新生成)。

例如,如果您只想apt-get update在過去一小時內未執行時執行,則可以使用

#!/bin/sh
last_update=$(stat -c %Y /var/cache/apt/pkgcache.bin)
now=$(date +%s)
if [ $((now - last_update)) -gt 3600 ]; then
 apt-get update
fi

或者

#!/bin/sh
if [ -z "$(find /var/cache/apt/pkgcache.bin -mmin -60)" ]; then
 apt-get update
fi

請注意,如果您幾乎同時執行此腳本的多個副本,它們可能都決定執行apt-get update. 如果這是一個問題,請使用鎖(這是一個完全獨立的問題)。

引用自:https://unix.stackexchange.com/questions/271000