View previous topic :: View next topic |
Author |
Message |
koma Advocate
Joined: 06 Jun 2003 Posts: 2702 Location: Italy
|
Posted: Mon Nov 22, 2010 12:44 pm Post subject: [SOLVED] Piccolo script per splittare le configurazioni |
|
|
Ciao!, Avrei bisgno di una dritta per scriptare una piccola configurazione
Cioè,
ho un file di circa 25000 righe contenenti le configurazioni vhost di un server web.
Per semplificarmi la vita voglio avere un file vhost per ogni sito quindi, devo "tagliare" il file attuale in tanti piccoli file:
esempio:
Code: |
<VirtualHost *>
DocumentRoot /usr/local/www/apache22/data/sito1
php_admin_value open_basedir /usr/local/www/apache22/data/sito1
php_admin_value upload_tmp_dir /usr/local/www/apache22/data/sito1/tmp
DirectoryIndex index.html
ServerName www.sito1.it
CustomLog /usr/local/www/log/sito1.access_log combined
</VirtualHost>
<VirtualHost *>
DocumentRoot /usr/local/www/apache22/data/sito2.com
php_admin_value open_basedir /usr/local/www/apache22/data/sito2.com
php_admin_value upload_tmp_dir /usr/local/www/apache22/data/sito2.com/tmp
ServerName www.sito2.com
CustomLog /usr/local/www/log/sito2.com.access_log combined
</VirtualHost>
|
Dovranno doventare due file
Code: |
<VirtualHost *>
DocumentRoot /usr/local/www/apache22/data/sito1
php_admin_value open_basedir /usr/local/www/apache22/data/sito1
php_admin_value upload_tmp_dir /usr/local/www/apache22/data/sito1/tmp
DirectoryIndex index.html
ServerName www.sito1.it
CustomLog /usr/local/www/log/sito1.access_log combined
</VirtualHost>
|
Code: |
<VirtualHost *>
DocumentRoot /usr/local/www/apache22/data/sito2.com
php_admin_value open_basedir /usr/local/www/apache22/data/sito2.com
php_admin_value upload_tmp_dir /usr/local/www/apache22/data/sito2.com/tmp
ServerName www.sito2.com
CustomLog /usr/local/www/log/sito2.com.access_log combined
</VirtualHost>
| questo però per circa 5000 siti.
Ora, l'idea sarebbe usare <VirtualHost *></VirtualHost> come delimitatori.
Qualcuno ha un'idea? _________________ http://www.youtube.com/watch?v=_yoJI-Tl94g GLORY GLORY HYPNOTOAD
Last edited by koma on Mon Nov 22, 2010 1:41 pm; edited 1 time in total |
|
Back to top |
|
|
cloc3 Advocate
Joined: 13 Jan 2004 Posts: 4809 Location: http://www.gentoo-users.org/user/cloc3/
|
Posted: Mon Nov 22, 2010 1:22 pm Post subject: |
|
|
può essere?
Code: |
cloc3@netlive-100 ~/prova $ cat splitta.sh
#!/bin/bash
IFS="
"
n=0
for i in `<$1`;do {
echo $i >>${1%\.*}_${n}.txt
echo $i|grep -sq ^"</VirtualHost>" && n=$(( $n+1 ))
}
done
|
uso:
Code: |
./splitta.sh vHost.txt
|
_________________ vu vu vu
gentù
mi piaci tu |
|
Back to top |
|
|
koma Advocate
Joined: 06 Jun 2003 Posts: 2702 Location: Italy
|
Posted: Mon Nov 22, 2010 1:38 pm Post subject: |
|
|
Me lo hanno fatto addirittura in php
Figata [/quote] Code: | <?php
$righe = file('vhost.txt');
$trovato = false;
$inizio = '<VirtualHost *>';
$name = 'ServerName';
foreach($righe as $riga) {
if(substr($riga, 0, strlen($inizio)) == $inizio) {
$i++;
}
if(trim($riga) != '') { $host[$i][] = $riga; }
}
foreach($host as $h) {
$nome = false;
foreach($h as $v) {
if(substr($v, 0, strlen($name)) == $name) {
$nomehost = str_replace("www.", "", trim(substr($v, strlen($name))));
$format[$nomehost] = $h;
$nome = true;
}
if($nome) break;
}
}
foreach($format as $nomefile => $contenuto) {
@unlink($nomefile.'.vhost');
}
foreach($format as $nomefile => $contenuto) {
$fp = fopen($nomefile.'.vhost', 'a');
fwrite($fp, implode("\n", $contenuto));
fclose($fp);
}
?> |
_________________ http://www.youtube.com/watch?v=_yoJI-Tl94g GLORY GLORY HYPNOTOAD |
|
Back to top |
|
|
cloc3 Advocate
Joined: 13 Jan 2004 Posts: 4809 Location: http://www.gentoo-users.org/user/cloc3/
|
Posted: Mon Nov 22, 2010 1:49 pm Post subject: |
|
|
koma wrote: | Me lo hanno fatto addirittura in php
Figata |
c' è un premio per chi supera le 30 righe di codice?
e se si usa c#? _________________ vu vu vu
gentù
mi piaci tu |
|
Back to top |
|
|
koma Advocate
Joined: 06 Jun 2003 Posts: 2702 Location: Italy
|
|
Back to top |
|
|
cloc3 Advocate
Joined: 13 Jan 2004 Posts: 4809 Location: http://www.gentoo-users.org/user/cloc3/
|
Posted: Mon Nov 22, 2010 9:18 pm Post subject: |
|
|
koma wrote: | Beh dai è meno criptico |
$righe
$trovato
$inizio
$name
$host
$nome
$nomefile
$contenuto
$format
$h
@unlink
file
foreach
as
if
substr
strlen
str_replace
trim
break
fopen
fwrite
implode
fclose
allora. secondo te, se tu devi comandare a un operaio di spalare del letame buttandolo su una carriola.
e se gli chiedi di cambiare carriola ogni volta che, per caso, gli capita sulla pala un'osso di pollo.
secondo te, se glielo spieghi in php, quello dice:
Figata, è meno criptico!
_________________ vu vu vu
gentù
mi piaci tu |
|
Back to top |
|
|
|