Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

4 года назад
Открыть в
Давно ничего не было на тему работы в bash с использованием консольных программ. Решил оживить рубрику и рассказать про различные варианты отображения времени с помощью утилиты date. Постоянно приходится её использовать в скриптах. В основном при создании бэкапов, чтобы задавать удобные для восприятия названия файлов или директорий. Если просто ввести date в терминале, то вы увидите текущее время, дату и часовой пояс. В таком виде это чисто информационное сообщение. # date Mon Dec 15 15:09:40 MSK 2024 Если бэкап выполняется раз в сутки, то информацию, связанную с изменениями за эти сутки, я обычно сохраняю в директории со следующим именем: # date +%F 2024-12-15 Год-месяц-день. Вывод этой команды аналогичен вот этой: # date +%Y-%m-%d Соответственно, если вы хотите получить только год и месяц, используйте: # date +%Y-%m 2024-12 Похожий вывод делает команда: # date +%x 15/12/2024 Только вместо тире используются наклонные линии и дата развёрнута в другую сторону. Для глаз более наглядно, но я стараюсь избегать таких символов в путях. Иногда бывают проблемы. Если хотите получить удобочитаемую человеком маску, то подойдёт вот такая: # date +'%d-%b-%Y-%H:%M:%S' 15-Dec-2024-15:15:28 Дата и время хорошо воспринимаются на глаз, но неудобно, если будет использоваться сортировка по имени. В этом случае имеет смысл хотя бы год поставить вперёд. # date +'%Y-%b-%d-%H:%M:%S' 2024-Dec-15-15:17:12 Обычно мне хватает показанных выше масок, которые комбинируются в разном порядке и разделяются различными символами - тире, пробелами, двоеточием или наклонными линиями. Все возможные маски подробно описаны в документации, которую можно почитать в man. Так что вы легко сможете собрать то, что подойдёт в каждом конкретном случае. К менее популярным, но всё равно иногда нужным, можно отнести: ◽ %y - показать только две последние цифры года ◽ %j - порядковый номер дня года, пригодится даже не в скриптах, а просто, чтобы быстро узнать, какой сейчас день по счёту ◽ %U - текущая неделя года, тоже скорее для информации пригодится, чтобы быстро узнать, какая сейчас неделя, этими данными постоянно финансисты и бухгалтера оперируют С помощью следующей команды можно изменить дату с формата unixtime в обычный. Это быстрее, чем гуглить онлайн конвертор: # date --date @1734265955 Sun Dec 15 15:32:35 MSK 2024 И в обратную сторону # date -d "Dec 15 2024 15:32:35" +%s 1734265955 #bash