Как скопировать все файлы .conf и включить каждый из них в среде ubuntu-apache - PullRequest
0 голосов
/ 28 января 2019

Мне нужна короткая версия этого скрипта

cp apache-conf/site1.conf /etc/apache2/sites-available
cp apache-conf/site2.conf /etc/apache2/sites-available
cp apache-conf/site..N.conf /etc/apache2/sites-available
a2ensite site1
a2ensite site2
a2ensite site..N

Я могу cp apache-conf/*.conf /etc/apache2/sites-available, но как насчет включения каждого из них?

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Вы можете использовать встроенные утилиты Powerhouse в bash, которые позволяют использовать число с номером в имени файла

# To avoid un-expanded globs being treated as valid entries
shopt -s nullglob

for file in apache-conf/site[0-9]*.conf; do
    cp -- "$file" /etc/apache2/sites-available
done

Предполагая, что N является статическим, а нет известно во время выполнения, вы можете сделать что-то, как показано ниже.Рассмотрим случай, когда он 10

for file in apache-conf/site{0..10}.conf; do
    cp -- "$file" /etc/apache2/sites-available
done   

и для запуска команды a2ensite по пути назначения

for file in /etc/apache2/sites-available/*.conf; do
    a2ensite "$(basename -- "$file")"
done
0 голосов
/ 28 января 2019

Пожалуйста, используйте следующую команду

find /etc/apache2/sites-available/ -type f -and -not -name "*default*" -exec a2ensite {} \;

Это находит все ваши файлы конфигурации, которые не имеют "default" в их имени, и активирует их.

Если вы столкнулись с какими-либо ошибками, пожалуйста,взглянуть на эту тему Кредиты: https://askubuntu.com/questions/916377/how-to-enable-all-site-confs-with-a2ensite-while-passing-over-000-default-conf/917701

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