Вставка даты и времени выполнения скрипта bash в файл

В процессе написания bash скриптов, довольно часто возникает необходимость проверить существует ли как-то файл прежде чем предпринимать какие-либо действия.

Как в bash узнать размер файла

Радмир Рамазанов Linux 1

Очень часто приходится сравнивать размеры файлов, будь то бэкапы, документы или любые другие файлы. Мне например очень пригодилось при работе с бэкапами, так как иногда архиватор создает бэкапы с нулевым размером (32 байта). Чтобы избежать таких “косяков” в своих скриптах я использую команду:

filesize=$(stat -c%s «$file»);

В ответ вы получите размер файла в байтах. Это очень удобно при работе с маленькими файлами, либо когда разница в файле очень мала. Дальше используйте по-своему усмотрению. например, так:

#если бэкап меньше 1 мбайта, то подозрительна чёта 8( filesize=$(stat -c%s «$file»); if [ «$filesize» -lt «1000000» ]; then echo «WARNING! File size of $file is small — $filesize byte» >> $backupdir/$logfile; fi

Затем весь лог-файл отправляется на почту. Об этом написано в посте Как отправить содержимое файла на почту в bash

Похожие записи

bash linux

ответа

Если вы хотите записать дату для одного события в скрипте, скорее всего, вы захотите сохранить текущий журнал. Команда date может быть нажата в качестве простого регистратора событий:

date +’%c|Backup started’ >>

Параметр + позволяет вам форматировать дату в любом случае. Подробности форматирования даты описаны в man date. Вышеупомянутая команда добавит строку в журнал, который выглядит примерно так:

Читайте также:  STP (System to people) – лохотрон, обман, мошенничество, отзывы

Tue Mar 25 14:49:28 2014|Backup started

Разделитель каналов упрощает анализ журнала, если вы добавляете разные события:

date +»%c|Backup completed: $?» >> [d4 ] $? — это статус возврата последней команды, которая должна быть выполнена, но вы можете использовать любую переменную, которая может быть полезна для последующей отладки. (Примечание: вам нужно использовать двойные кавычки, если вы хотите, чтобы переменные были интерполированы.) Глядя на журнал, вы сможете обнаружить возможный сбой:

Tue Mar 25 14:49:28 2014|Backup started Tue Mar 25 14:49:52 2014|Backup completed: 1 3 ответ дан Jon Ericson 24 May 2018 в 10:27 поделиться

Вы должны добавить следующую строку в свой скрипт :

date >> /path/to/

Объяснение:

date — распечатать системную дату и время >> /path/to/ перенаправить вывода и добавляет его в файл /path/ 2 ответ дан Radu Rădeanu 24 May 2018 в 10:27 поделиться

  • 1 Это сработало. Спасибо за помощь! JLWK 24 March 2014 в 22:56

Если Файл Существует, То …

Само собой разумеется, что у нас есть причина по которой нам необходимо проверить существует ли файл.

Обычно мы проверяем существование файла для того, чтобы выполнить какое-то действия по результатам проверки.

Возможно, если файл не существует, то вообще не имеет смысла продолжать и необходимо прервать выполнение скрипта или что-то вроде того.

В следующих примерах напечатаем соответствующие сообщения по результатам выполнения команды test.

Дельный Совет: Конструкция CASE — это простейшая форма конструкции IF-THEN-ELSE! Если у вас много ELIF элементов — то лучше использовать CASE! Читать далее →

$ if [ -f «/etc/passwd» ]; then echo «Файл существует»; fi Файл существует

$ if [ ! -f «/etc/bebebe» ]; then echo «Файл не существует»; fi Файл не существует

$ [ -f «/etc/passwd» ] && echo «Файл существует» || echo «Файл не существует» Файл существует $ [ -f «/etc/bebebe» ] && echo «Файл существует» || echo «Файл не существует» Файл не существует

Основные команды bash

В общем виде в Ubuntu команды имеют такой вид:

Программа — это сам исполняемый файл. Другими словами, это программа, которая будет выполняться по команде.

Ключ — обычно у каждой программы свой набор ключей. Их можно найти в мануале к программе.

Значение — параметры программы: цифры, буквы, символы, переменные.

Напомним, что для выполнения команды нужно ввести её в командную строку — Ubuntu console или эмулирующий работу консоли терминал.

Рассмотрим основные команды консоли Ubuntu:

Промежуточная команда sudo (SuperUser DO — суперпользователь) позволяет запускать программы от имени администратора или root-пользователя.

Команда pwd (print working directory — вывести рабочую директорию) показывает полное имя рабочей директории, в которой вы находитесь.

Команда ls (list — список) выводит все файлы во всех папках рабочей директории.

Команда cd (change directory — изменить директорию) позволяет перейти в другую директорию.

Команда cp (copy — копировать) копирует файл.

Команда mv (move — переместить) помогает перемещать файлы.

Команда rm (remove — удалить) удаляет файлы и каталоги.

С помощью mkdir (make directory — создать директорию) можно создать новую директорию.

Команда man (manual — мануал) открывает справочные страницы с подробной информацией о команде.

Читайте также:  Обновление до Kubuntu 20.04 с Kubuntu 18.04

Мы рассмотрели, как вызвать командную строку в Linux — открыть терминал или запустить консоль в Ubuntu, а также перечислили основные команды терминала Ubuntu.

Помогла ли вам статья? ДаНет 3 раза ужепомогла

Избавляемся от временных файлов

Некоторые команды ожидают на вход имя файла, с ними нам поможет оператор ‘<()’, он принимает на вход команду и преобразует в нечто что можно использовать как имя файла: # скачать два URLa и передать их в diff

diff <(wget -O — url1) <(wget -O — url2)

Использование маркера для передачи многострочных переменных: # MARKER — любое слово.

command << MARKER … ${var} $(cmd) … MARKER

Если нужно избежать подстановки, то маркер можно взять в кавычки: # конструкция вернет ‘$var’ а не значение переменной

var=»text» cat << ‘MARKER’ … $var … MARKER