Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Шел скриптинг

Featured Replies

Здравейте. Малко се замотах покрай писането на един скрипт по задание. Но така и не успявам да открия къде е грешката на този етап.

 

#!/bin/bash

helpFunction()
{
    echo ""
    echo "Usage: $0 -nginx, $0 -apache, $0 -named, $0 -whm"
    echo -e "\t-nginx: nginx domain parsing"
    echo -e "\t-apache: apache domain parsing"
    echo -e "\t-named: bind/named domain parsing"
    echo -e "\t-whm: WHM/cPanel domain parsing"
    exit 1 # Exit script after printing help
}

while getopts nginx:apache:named:whm: option
do
    case "${option}"
    in
	nginx) NGINX=${OPTARG};;
	apache) APACHE=${OPTARG};;
	named) BIND=${OPTARG};;
	whm) WHM=${OPTARG};;
    esac
    done

# Print helpFunction in case parameters are empty
if [ -z "$nginx" ] || [ -z "$apache" ] || [ -z "$named" ] || [ -z "$whm" ]
then
    echo "Some or all of the parameters are empty";
    helpFunction
fi

echo "$NGINX"
echo "$APACHE"
echo "$NAMED"
echo "$WHM"

 

По принцип искам да го направя само ако няма параметър да показва help съобщението, но във случая винаги го показва, дори да задам параметър.

 

./test.sh -nginx "domain"                                                                                                                         
Some or all of the parameters are empty

Usage: ./test.sh -nginx, ./test.sh -apache, ./test.sh -named, ./test.sh -whm
    -nginx: nginx domain parsing
    -apache: apache domain parsing
    -named: bind/named domain parsing
    -whm: WHM/cPanel domain parsing

Някакви идеи?

 

преди 38 минути, Росен Р. Александров написа:

Здравейте. Малко се замотах покрай писането на един скрипт по задание. Но така и не успявам да открия къде е грешката на този етап.

 


#!/bin/bash

helpFunction()
{
    echo ""
    echo "Usage: $0 -nginx, $0 -apache, $0 -named, $0 -whm"
    echo -e "\t-nginx: nginx domain parsing"
    echo -e "\t-apache: apache domain parsing"
    echo -e "\t-named: bind/named domain parsing"
    echo -e "\t-whm: WHM/cPanel domain parsing"
    exit 1 # Exit script after printing help
}

while getopts nginx:apache:named:whm: option
do
    case "${option}"
    in
	nginx) NGINX=${OPTARG};;
	apache) APACHE=${OPTARG};;
	named) BIND=${OPTARG};;
	whm) WHM=${OPTARG};;
    esac
    done

# Print helpFunction in case parameters are empty
if [ -z "$nginx" ] || [ -z "$apache" ] || [ -z "$named" ] || [ -z "$whm" ]
then
    echo "Some or all of the parameters are empty";
    helpFunction
fi

echo "$NGINX"
echo "$APACHE"
echo "$NAMED"
echo "$WHM"

 

По принцип искам да го направя само ако няма параметър да показва help съобщението, но във случая винаги го показва, дори да задам параметър.

 

./test.sh -nginx "domain"                                                                                                                         
Some or all of the parameters are empty

Usage: ./test.sh -nginx, ./test.sh -apache, ./test.sh -named, ./test.sh -whm
    -nginx: nginx domain parsing
    -apache: apache domain parsing
    -named: bind/named domain parsing
    -whm: WHM/cPanel domain parsing

Някакви идеи?

 

if [ -z "$nginx" ] || [ -z "$apache" ] || [ -z "$named" ] || [ -z "$whm" ]; //ey taka may trqbva da e no tuk e greshkata	
then
    echo "Some or all of the parameters are empty"
    helpFunction
fi

 

преди 1 час, Росен Р. Александров написа:

if [ -z "$nginx" ] || [ -z "$apache" ] || [ -z "$named" ] || [ -z "$whm" ] then echo "Some or all of the parameters are empty"; helpFunction fi

Това означава, че дори и една от променливите да е празна, ще продължи с функцията. А в примера ти задаваш стойност само на една променлива.

Пробвай с && вместо ||

  • Автор

То по-добре да започна отначало, че да я правя по ред.

 

Първо ми трябва да мога да извлека всички домейн записи от apache, named, nginx.

До момента намерих как да го направя за nginx.

 

nginx -Tq | sed -r -e 's/[ \t]*$//' -e 's/^[ \t]*//' -e 's/^#.*$//' -e 's/[ \t]*#.*$//' -e '/^$/d' | sed -e ':a;N;$!ba;s/\([^;\{\}]\)\n/\1 /g' | grep -P 'server_name[ \t]' | grep -v '\$' | grep '\.' | sed -r -e 's/(\S)[ \t]+(\S)/\1\n\2/g' -e 's/[\t ]//g' -e 's/;//' -e 's/server_name//' | sort | uniq | xargs -L1
aleksandrov.info
aleksandrov.tk
options.domain.com
signals.domain.com
stage-options.domain.com
stage-signals.domain.com
stage-trader.domain.com
trader.domain.com
www.aleksandrov.com
www.aleksandrov.info
www.aleksandrov.tk

Трябва ми същото но за apache и bind/named. Някакви идеи?

  • Автор

Трябва ми нещо по-удачно от

 

rndc dumpdb -zones ; grep 'Zone dump of*' /var/named/data/cache_dump.db |  cut -d "'" -f2 | cut -f1 -d"/" | sort


и

 

httpd -D DUMP_VHOSTS | egrep "namevhost|alias" | sed "s/port 80//" | sed "s/port 443//" | sed "s/namevhost//" | sed "s/alias//" | sed "s/ /\n/g" | sed '/^$/d'

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.