Очень спасибо.. надо выделить время всю эту серию на практике изучить.. знаний не хватает мне. Ты продолжай плиз, складываю всё себе в карман на изучение.
Доброго времени суток мини вопрос по последнему заданию в cron можно просто прописать команду find чтобы она выполнялась в такое то время но можно и написать ее в скрипте и что бы крон выполнял уже скрипт так как всё-таки более правильно писать сразу в крон или в скрипт а потом в крон?
Доброго времени суток Оба варианта сойдут. Хотя у скриптов есть преимущество - их можно положить куда-нибудь в гит, деплоить каким-нибудь ансиблом и в будущем расширить функционал. Да, крон также можно обновлять через ансибл, но скрипты будут гибче/функциональные, особенно когда могут быть более сложные задачи, и было бы криво часть задач деплоить чисто в крон, а другую часть в скрипты. Т.е., скриптами гибче, если планируется расширяться/более сложная инфраструктура. А в каком-нибудь одиноком сервере, выполняющем одну задачу - можно обойтись find, прописанным в кроне
Привет 1) Если exec запущен с аргументом (какой-то командой), то запускает эту команду взамен того процесса, который его запустил (например, процесса баша). Обычно запущенные команды выполняются в дочерних процессах, а с exec вместо баша. 2) Если аргумент не передавать ( exec > file ) то меняется сам процесс баша. Теперь он будет весь stdout посылать не на терминал, а в файл.
Здравствуйте. 4:40. Объясните пожалуйста конструкцию exec ls -l {} \; А именно: зачем используется "\;", зачем нужно экранировать точку с запятой. Мы ведь не пишем в баше ls -l \; Заранее спасибо
Привет Потому что в данном случае точка с запятой относится к команде find, а если её не экранировать, баш посчитает, что точка с запятой относится к нему. В итоге баш посчитает это за завершение команды на деле же это часть find, которая показывает, будет ли для каждого аргумента выполнена команда (;) или одной команде передадутся все найденные файлы (+). Типа ls file; ls file2; ls file3; или ls file1 file2 file3
Спасибо за видео. Пробую приспособить такой скрипт для создания бэкапов сайтов. Подскажите, команды в скрипте можно писать друг за другом, т.е. они как-бы будут параллельно выполняться? Или нужно разбивать на разные скрипты? Пример: tar -czf site1.tar.gz site1 tar -czf site2.tar.gz site2 mysqldump database1 > database1.sql
Большое спасибо! Я новичок в Linux, пытаюсь доработать данный скрипт следующим образом: 1. При каждом выполнении скрипта в лог файл записывать дату и время и в зависимости от результатов добавлять либо "Ок", либо stderr. Проверку устаревших бэкапов проверять ТОЛЬКО после успешного архивирования. Никто не заморачивался?))
@@GNULinuxPro Я сейчас посмотрел урок под номером 11, там есть об этом. А тут, я имел в виду, подробней, как в скриптах грамотно выводить поток об ошибках в файл лога. Делать 2 файла, один с успешным выводом, другой с ошибками, или вместе. Сейчас у себя делаю бэкап скрипты, ищу информацию.
Добрый день. Можно уточнить, как вы повышали права? Возможно вы делали что-то типа sudo command > /dir/logs Таким образом работать не будет, потому что перенаправления ( > ) выполняется вашим юзером и sudo на него не действует Нужно либо весь скрипт от рута запускать, либо заменить этот момент, допустим sudo command | sudo tee /dir/logs
Несколько видео по линуксу посмотрел у тебя, есть хорошая инфа, но подача в этом видео ужасное очень быстро все скомкано, постоянно приходится ставить на паузу и перематывать, по итогу быстрее будет посмотреть какого пердуна старого с лишней ьолтавней зато не так быстро 😂
Очень толково. Раскрывается суть без ненужной болтовни и хорошим языком.
Спасибо! Всё просто, понятно, и с хорошим примером!
Очень спасибо.. надо выделить время всю эту серию на практике изучить.. знаний не хватает мне.
Ты продолжай плиз, складываю всё себе в карман на изучение.
Спасибо за контент, все очень интересно и познавательно. Продолжайте, делаете хорошее дело.
Спасибо за видео, очень информативно!
спасибо! очень крутой канал.
спасибо =)
Огромное СПАСИБО Мурад!!!!))
не за что)
Спасибо за видео.
За mtime отдельное спасибо 👍
топчик!
Годно, спасибо.
Доброго времени суток мини вопрос по последнему заданию в cron можно просто прописать
команду find чтобы она выполнялась в такое то время
но можно и написать ее в скрипте и что бы крон выполнял уже скрипт
так как всё-таки более правильно писать сразу в крон или в скрипт а потом в крон?
Доброго времени суток
Оба варианта сойдут. Хотя у скриптов есть преимущество - их можно положить куда-нибудь в гит, деплоить каким-нибудь ансиблом и в будущем расширить функционал.
Да, крон также можно обновлять через ансибл, но скрипты будут гибче/функциональные, особенно когда могут быть более сложные задачи, и было бы криво часть задач деплоить чисто в крон, а другую часть в скрипты.
Т.е., скриптами гибче, если планируется расширяться/более сложная инфраструктура. А в каком-нибудь одиноком сервере, выполняющем одну задачу - можно обойтись find, прописанным в кроне
@@GNULinuxPro информация принята) спасибо!
Супер 👍
Привет, Мурад!, Можете объяснить что делает команда exec. Очень мало информации на счет нее, не могу разобраться(
Привет
1) Если exec запущен с аргументом (какой-то командой), то запускает эту команду взамен того процесса, который его запустил (например, процесса баша). Обычно запущенные команды выполняются в дочерних процессах, а с exec вместо баша.
2) Если аргумент не передавать ( exec > file ) то меняется сам процесс баша. Теперь он будет весь stdout посылать не на терминал, а в файл.
Здравствуйте. 4:40. Объясните пожалуйста конструкцию exec ls -l {} \;
А именно: зачем используется "\;", зачем нужно экранировать точку с запятой. Мы ведь не пишем в баше ls -l \;
Заранее спасибо
Привет
Потому что в данном случае точка с запятой относится к команде find, а если её не экранировать, баш посчитает, что точка с запятой относится к нему. В итоге баш посчитает это за завершение команды
на деле же это часть find, которая показывает, будет ли для каждого аргумента выполнена команда (;) или одной команде передадутся все найденные файлы (+). Типа ls file; ls file2; ls file3; или ls file1 file2 file3
Сохраняются ли все права при таком бэкапе?
И да, большое спасибо за канал! С удовольствием смотрю, что-то вспоминается , что-то узнается. Спасибо!
Спасибо!
Да, при архивации права сохраняются =)
Привет! А "\" экранирует ";"? Или зачем он? Получается, "+" не нужно экранировать?
Привет!
Да, верно
чтоб баш не счёл ; как конец команды
а просто плюс для баша ничего не значит
Спасибо за видео. Пробую приспособить такой скрипт для создания бэкапов сайтов. Подскажите, команды в скрипте можно писать друг за другом, т.е. они как-бы будут параллельно выполняться? Или нужно разбивать на разные скрипты? Пример:
tar -czf site1.tar.gz site1
tar -czf site2.tar.gz site2
mysqldump database1 > database1.sql
Можно все в одном скрипте, команды будут выполняться последовательно
Четко! Спасибо) А по RHCE будет продолжение?))
В планах есть)
Большое спасибо! Я новичок в Linux, пытаюсь доработать данный скрипт следующим образом: 1. При каждом выполнении скрипта в лог файл записывать дату и время и в зависимости от результатов добавлять либо "Ок", либо stderr. Проверку устаревших бэкапов проверять ТОЛЬКО после успешного архивирования. Никто не заморачивался?))
Подробней бы про вывод ошибок и логирование в бэкап скриптах.
Что именно? Можно, в принципе, отделить стандартный вывод от ошибок
@@GNULinuxPro Я сейчас посмотрел урок под номером 11, там есть об этом.
А тут, я имел в виду, подробней, как в скриптах грамотно выводить поток об ошибках в файл лога. Делать 2 файла, один с успешным выводом, другой с ошибками, или вместе. Сейчас у себя делаю бэкап скрипты, ищу информацию.
@@ultrazSupporter там в строке &> $FILENAME.log стоит заменить на "> $FILENAME.out 2> $FILENAME.err"
Добавлю это в следующей части
Добрый день, у меня при выполнении скрипта выдает ошибку при попытке записи лога(Permission denied). Хотя я повышал права файла.
Добрый день. Можно уточнить, как вы повышали права?
Возможно вы делали что-то типа sudo command > /dir/logs
Таким образом работать не будет, потому что перенаправления ( > ) выполняется вашим юзером и sudo на него не действует
Нужно либо весь скрипт от рута запускать, либо заменить этот момент, допустим
sudo command | sudo tee /dir/logs
@@GNULinuxPro Спасибо, скорее всего в этом и есть проблема.
как сделать бэкап на соседную машину?
Можно создать NFS шару и закидывать туда (посмотрите урок про nfs), либо копировать по ssh/rsync по сети
Несколько видео по линуксу посмотрел у тебя, есть хорошая инфа, но подача в этом видео ужасное очень быстро все скомкано, постоянно приходится ставить на паузу и перематывать, по итогу быстрее будет посмотреть какого пердуна старого с лишней ьолтавней зато не так быстро 😂