PDA

Просмотр полной версии : Помогите отладить sh скрипт


vredin
29.11.2009, 02:21
PHP:



#!/bin/bash -x
#path_to_folder= #path to folder with files
#path_to_apache= #path to apache config folder
#clear
if
[
[
$
# -ne 2 ]]
then
echo
"out pri proverke parametrov"
exit
1
fi
if
[
[
"$1"
-
eq
'add'
]
]
then
mkdir
/
var
/
www
/
$2
echo
"sozdali papku"
echo
""
>
"/etc/apache2/sites-available/$2"
echo
"RLimitMEM 16000000 20000000"
>
>
"/etc/apache2/sites-available/$2"
echo
"RLimitCPU 10 30"
>
>
"/etc/apache2/sites-available/$2"
echo
"ServerAdmin androngates@gmail.com"
>
>
"/etc/apache2/sites-available/$2"
echo
"DocumentRoot /var/www/$2/"
>
>
"/etc/apache2/sites-available/$2"
echo
"ServerName $2"
>
>
"/etc/apache2/sites-available/$2"
echo
"ServerAlias www.$2"
>
>
"/etc/apache2/sites-available/$2"
echo
"ErrorLog /var/www/$2.log"
>
>
"/etc/apache2/sites-available/$2"
echo
"LogLevel warn"
>
>
"/etc/apache2/sites-available/$2"
echo
""
>
>
"/etc/apache2/sites-available/$2"
a2ensite
"$2"
/
etc
/
init
.
d
/
apache2 reload
break
else
a2dissite
"$2"
/
etc
/
init
.
d
/
apache2 reload
break
fi


какие-то непонятные ошибки на 2х серваках дебиан, первый раз програмлю на шеле - уже голова болит а понять не могу

Fallen7
29.11.2009, 12:18
Ну ошибки бы привели, да знаете ли, стоило написать, что хотите создать скрипт длясоздания виртуальных сайтов.

Код:



#!/bin/bash
site_name=$1
if [ -z $1 ];
then
echo "Отсутсвует имя сайта (пример forum.exmaple.ru)"
exit 0
else
echo "
ServerAdmin example@examile.org
ServerName www.$site_name
ServerAlias $site_name
# Indexes + Directory Root.
DirectoryIndex index.php index.html
DocumentRoot /var/www/www.$site_name/htdocs/
# CGI Directory
ScriptAlias /cgi-bin/ /var/www/$site_name/cgi-bin/

Options +ExecCGI

# Logfiles
ErrorLog /var/www/www.$site_name/logs/error.log
CustomLog /var/www/www.$site_name/logs/access.log combined
" > /etc/apache2/sites-available/www.$site_name
mkdir /var/www/www.$site_name
mkdir /var/www/www.$site_name/cgi-bin
mkdir /var/www/www.$site_name/htdocs
mkdir /var/www/www.$site_name/logs
touch /var/www/www.$site_name/logs/error.log
touch /var/www/www.$site_name/logs/access.log
chown www-data.www-data /var/www/www.$site_name -R
chmod 775 /var/www/www.$site_name/htdocs
a2ensite www.$site_name
/etc/init.d/apache2 reload
fi
exit 0


Думаю, я бы делал это как-то так.

vredin
29.11.2009, 12:42
спасибо огромное,
ваш вариант мне больше нравится, но всё равно выдает

new:/# site.bash qwerty.ru
-bash: site.bash: command not found
new:/#

текст скрипта я вставил через редактор mc в файл site.bash, сохранил и изменил ему права на 777

Добавлено через 17 минут
как я запарился!

надо запускать скрипт через ./
или полный путь

вопрос закрыт

Fallen7
29.11.2009, 13:40
поместите скриптв в /usr/sbin и запускайте так, как вы его запускали (т.е. как обычную команду).