![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Проверка наличия в каталоге ненулевого вчерашнего бэкапа |
|
Проверка наличия в каталоге ненулевого вчерашнего бэкапа
|
Пользователь Сообщения: 136 |
Задача, казалось бы несложная, но не получается сделать, чтобы правильно работало.
Есть каталог, куда ежедневно складывается бэкап (или не складывается, в случае сбоев, для проверки чего, собственно, и нужен этот скрипт) Логика должна быть такая: В каталоге находится самый новый файл, проверяется, что он не старше, например, чем 1500 минут (25 часов), и то, что файл ненулевого размера. Если условия совпадают, то скрипт должен отдать 0, в противном случае 1 Вот, что я сделал: #!/bin/bash BACKUPDIR=/mnt/MY_DIR LASTBACKUP=$(find $BACKUPDIR -mmin -1500 | awk '(NR == 2)') if test -s $LASTBACKUP then echo 0 else echo 1 fi Обнаружил, что некорректно работает, да и тут сразу видна ошибка: в случае, если find $BACKUPDIR -mmin -1500 ничего не найдёт, то переменной $LASTBACKUP ничего не присвоится. Были варианты, и наиболее приближенные к правде, однако и они выдавали 0 тогда, когда должны были выдавать 1. Результат выполнения предполагается скормить заббиксу. Смотрел ман по команде test, с ним удобно работать, когда известно имя файла, которое будем проверять, так же не удалось найти способ проверить, "на сколько новый или старый файл", кроме как ключ к команде find. поделитесь, пожалуйста своими соображениями. |
|
Отправлено: 13:56, 15-07-2021 |
Пользователь Сообщения: 136
|
Профиль | Отправить PM | Цитировать Удалось сделать код рабочим, выглядит это примерно так:
#!/bin/bash BACKUPDIR=/mnt/BACKUPDIR LASTBACKUP=$(find $BACKUPDIR -mmin -1500 | awk '(NR == 2)') a=$(find $BACKUPDIR -mmin -1500 | awk '(NR == 2)' | wc -l) b=0 if [ $a \> $b ] then if test -s $LASTBACKUP then echo 0 else echo 1 fi else echo "1" fi Не уверен, что такой способ написания является оптимальным, но работает. |
Отправлено: 16:46, 15-07-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Проверка наличия файлов | Svnkill | Скриптовые языки администрирования Windows | 9 | 17-02-2018 22:40 | |
PowerShell - Проверка наличия процесса | botkin1 | Скриптовые языки администрирования Windows | 0 | 12-05-2016 07:33 | |
Любой язык - проверка наличия файла в директории | icetanker | Скриптовые языки администрирования Windows | 11 | 19-10-2014 21:37 | |
CMD/BAT - проверка наличия файлов | neprotiv | Скриптовые языки администрирования Windows | 0 | 04-04-2013 22:09 | |
Любой язык - [решено] Проверка наличия обновления | SANIOK_AV | Скриптовые языки администрирования Windows | 4 | 18-08-2011 14:47 |
|