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

ServerAdmin.ru

12437 @srv_admin

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

ServerAdmin.ru

5 лет назад
Открыть в
​​Совершенно не понятно, как я еще ни разу не рассказал про достаточно известный и популярный сервис ShellCheck. С его помощью можно проверять синтаксис shell скриптов. Cервис хостится в интернете по адресу https://www.shellcheck.net, но сам по себе это открытый проект, который вы можете развернуть у себя. Исходники для этого - https://github.com/koalaman/shellcheck. Много расписывать не буду, а сразу покажу на примере, как он работает. У меня есть типовой скрипт для бэкапа баз mysql, когда каждая база кладётся в отдельный архив. #!/bin/bash for i in `mysql -uroot -e'show databases;' | grep -v information_schema | grep -v Database`;   do    /usr/bin/mysqldump --opt -v -uroot $i | /usr/bin/gzip -c > /web/sites/!backup-mysql/`date +%Y-%m-%d`-$i.sql.gz;   done /usr/bin/find /web/sites/!backup-mysql -type f -mtime +7 -exec rm {} \; Проверяю его через ShellCheck. Получаю ряд замечаний. Ичсправляю: #!/bin/bash for i in >$(mysql -uroot -e'show databases;' | grep -v information_schema | grep -v Database<u>);   do    /usr/bin/mysqldump --opt -v -uroot "$i" | /usr/bin/gzip -c > /web/sites/!backup-mysql/"$(date +%Y-%m-%d>)"-"$i".sql.gz;   done /usr/bin/find /web/sites/!backup-mysql -type f -mtime +7 -exec rm {} \; Насколько критичные эти замечания, судить не берусь. У меня давняя привычка использовать `` для консольных команд. #terminal #bash