updates-available.sh

Модератор: Модераторы разделов

Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

updates-available.sh

Сообщение TuLiss »

В ubuntu есть вот такой скрипт

Код: Выделить всё

#!/bin/sh -e
#
# helper for update-motd


# poor mans force
if [ "$1" = "--force" ]; then
    NEED_UPDATE_CHECK=yes
fi

# check time when we did the last update check
stamp="/var/lib/update-notifier/updates-available"

# get list dir
StateDir="/var/lib/apt/"
ListDir="lists/"
eval "$(apt-config shell StateDir Dir::State)"
eval "$(apt-config shell ListDir Dir::State::Lists)"

# get sources.list file
EtcDir="etc/apt/"
SourceList="sources.list"
eval "$(apt-config shell EtcDir Dir::Etc)"
eval "$(apt-config shell SourceList Dir::Etc::sourcelist)"

# check if we have a list file or sources.list that needs checking
if [ -e "$stamp" ]; then
    if [ "$(find "/$StateDir/$ListDir" "/$EtcDir/$SourceList" -type f -newer "$stamp" -print -quit)" ]; then
        NEED_UPDATE_CHECK=yes
    fi
else
    if [ "$(find "/$StateDir/$ListDir" "/$EtcDir/$SourceList" -type f -print -quit)" ]; then
        NEED_UPDATE_CHECK=yes
    fi
fi

# output something for update-motd
if [ -n "$NEED_UPDATE_CHECK" ]; then
    {
        echo ""
        /usr/lib/update-notifier/apt-check --human-readable
        echo ""
    } > $stamp
fi

# output what we have (either cached or newly generated)
cat "$stamp"



Сразу у меня возник вопрос:

stamp - переменная до этого файла.

Далее запускаем проверку, есть ли этот файл if [ -e "$stamp" ]; then
если да то запускаем find.
В find указано, что мы ищем файл -f , после указанной даты -newer , переменной stamp.
Если такие есть, то делаем переменную NEED_UPDATE_CHECK=yes

иначе мы ищем файлы find и ставим переменную NEED_UPDATE_CHECK=yes .
Вот тут мой мозг сломался, это вообще еще зачем ?
Смысл тогда было проверять первый раз по времени ?
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21352
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: updates-available.sh

Сообщение Bizdelnick »

Если файл есть, то мы знаем время последней проверки, и проверяем, есть ли файлы, которые изменились с тех пор. Если файла нет, значит скрипт запущен первый раз, и проверку надо запускать при наличии вообще любого файла.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: updates-available.sh

Сообщение TuLiss »

Bizdelnick писал(а):
11.04.2015 22:10
Если файл есть, то мы знаем время последней проверки, и проверяем, есть ли файлы, которые изменились с тех пор. Если файла нет, значит скрипт запущен первый раз, и проверку надо запускать при наличии вообще любого файла.


Да да , все так и есть спс.
Если файл updates-available имеет дату создание более старую чем файлы , тогда проверка. Eсли его нет вообще,тогда проверка.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали: