Necesito encontrar la última vez que el
apt-get update
El comando se ejecutó en mi servidor. ¿Cómo puedo determinar esta información?
Al menos en los sistemas Ubuntu hay un archivo /etc/apt/apt.conf.d/15update-stamp que contiene:
APT::Update::Post-Invoke-Success {"touch /var/lib/apt/periodic/update-success-stamp 2>/dev/null || true";};
Entonces, vea si tiene / var / lib / apt / periodic / update-success-stamp y si lo tiene, puede usar
stat -c %y /var/lib/apt/periodic/update-success-stamp
comando para obtener la hora de la última invocación de "apt-get update".
Y si su sistema no tiene ese archivo de configuración apto, siempre puede agregarlo.
/var/lib/apt/periodic/update-stamp
Puede verificar los tiempos de acceso en los archivos en / var / lib / apt / lists que se actualiza cuando ejecuta apt-get update. Si se ejecutó apt-get update con sudo, debería tener una línea registrada en /var/log/auth.log cuando se realizó.
fuente
Es
apt-get update
posible que no cree ni actualice archivos, actualiza el directorio de caché para que podamos usarlo para obtener la marca de tiempo cuandoapt-get update
se ejecutó el último :fuente
apt-get update
No te vayas de los archivos de bloqueo. Los archivos de bloqueo no son confiables, tienden a moverse con el tiempo con las nuevas versiones de Linux, y muchos programas limpian (eliminan) archivos de bloqueo cuando terminan con ellos.
El siguiente comando te dará lo que estás buscando.
Estos son dos comandos en uno. Los resultados del primer comando se filtran al segundo a través del símbolo de canalización (|)
En el primer comando, estoy usando "ls" para enumerar el contenido del archivo del directorio / var / log / apt, que es el directorio que almacena los registros del historial de acceso para apt-get. La parte "-lt" es en realidad dos interruptores. El primer interruptor "l" le dice a "ls" que enumere un archivo por línea con detalle. El segundo interruptor "t" le dice a "ls" que ordene por fecha y hora. "--time-style" fuerza que la fecha y hora se muestre en el formato "AAAA-MM-DD HH: MM".
En la porción "grep" del comando, el interruptor "-o" le dice a grep que solo muestre las porciones de cada línea que coincidan exactamente con la expresión regular. La expresión regular que he usado aquí detecta la fecha y la hora en el formato especificado en el comando "ls". También notará la verdadera pequeña pieza de magia al final del comando "grep" de que hay un interruptor "-m" con el número "1" inmediatamente siguiente. Esto le dice a "grep" que deje de buscar coincidencias después de encontrar la primera.
Entonces, en resumen, enumeramos los detalles del archivo de registro de apt para que podamos ver la última fecha de modificación, luego ordenamos por fecha y le decimos a grep que retire la primera fecha de la parte superior, que luego devuelve. Esa es la última fecha en que se ejecutó apt-get.
Sin embargo, para jugar al abogado del diablo por un momento, es común que las plataformas Debian como Ubuntu programen apt-get como un trabajo que se ejecuta regularmente. Si está buscando a la persona en el otro extremo de la ejecución de apt-get, en realidad puede encontrar una máquina. Siempre puede hacer coincidir los registros de acceso con los registros de apt para ver si las marcas de tiempo coinciden. También es posible mirar el historial de comandos de un usuario hasta cierto punto.
¡Espero que esto ayude!
fuente
/var/log/apt
ella también se registra cuando, por ejemplo, hacer unaapt-get install some-package
. En realidad, en Ubuntu no registra algo cuando lo hagoapt-get update
Sospecho que puede verificar los últimos tiempos modificados en los archivos / var / cache / apt para averiguar cuándo se aplicaron las últimas actualizaciones a las listas de paquetes.
Acabo de probar esto y ejecuté "sudo apt-get update" dos veces seguidas, y las fechas no cambiaron de su valor actual, pero sospecho que esto se debe a que no hubo nuevas actualizaciones para aplicar, y que las memorias caché están activas hasta la fecha.
fuente
fuente
Synaptic registra un archivo de historial (> Archivo> Historial), aptitude registra tanto el historial en / var / log / aptitude como los paquetes autoinstalados en / var / lib / aptitude / pkgstates, por lo que puede consultarlos para conocer la actividad más reciente.
fuente
Yo uso
/var/cache/apt
para determinar si necesito correrapt-get update
. Por defecto, si la diferencia entre la hora actual y el tiempo de caché/var/cache/apt
es inferior a 24 horas, no necesito ejecutarapt-get update
. El intervalo de actualización predeterminado se puede anular pasando un número para funcionarrunAptGetUpdate()
Salida de muestra:
Extraje estas funciones de mi github personal: https://github.com/gdbtek/ubuntu-cookbooks/blob/master/libraries/util.bash
fuente
info
yisEmptyString
? Además,info
es una mala elección del nombre de la función, ya que también es un comando. Aparte de eso, buena solución!/var/log/dpkg.log mantendrá un historial de lo que se hizo, pero no necesariamente qué aplicación se llama dpkg (synaptic, apt-get, etc.).
fuente
wrap apt-get en un script que primero escribe una marca de tiempo en un archivo y luego hace el trabajo habitual. de esa manera, puede definir el formato y la ubicación de la marca de tiempo;)
fuente
Aquí hay una línea simple para ejecutar una actualización si no se ha ejecutado en el último día.
Busca el archivo update-success-stamp, que se modificó hace más de un día. Si encuentra el archivo de la edad correcta, entonces ejecuta la actualización. Nota: el archivo update-success-stamp tiene que existir para que esto funcione.
fuente