<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>morzello.com</title>
	<atom:link href="http://www.morzello.com/index.php?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.morzello.com</link>
	<description>informatica a bocconi</description>
	<lastBuildDate>Thu, 17 Jun 2010 08:49:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Pentaho &#8211; Avviare il servizio al boot. Uno script per CentOS, Fedora e RHEL</title>
		<link>http://www.morzello.com/?p=271</link>
		<comments>http://www.morzello.com/?p=271#comments</comments>
		<pubDate>Tue, 08 Jun 2010 07:08:15 +0000</pubDate>
		<dc:creator>vittorio</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[pentaho]]></category>
		<category><![CDATA[rhel]]></category>

		<guid isPermaLink="false">http://www.morzello.com/?p=271</guid>
		<description><![CDATA[Ho visto che in giro non è ancora stato pubblicato uno script per l&#8217;avvio automatico di pentaho su sistemi linux derivati da Red Hat così ho pensato di mettere online il mio:

#!/bin/bash
#
# chkconfig: - 92 36
# description: Starts and stops pentaho.

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} [...]]]></description>
			<content:encoded><![CDATA[<p>Ho visto che in giro non è ancora stato pubblicato uno script per l&#8217;avvio automatico di pentaho su sistemi linux derivati da Red Hat così ho pensato di mettere online il mio:</p>
<pre>
#!/bin/bash
#
# chkconfig: - 92 36
# description: Starts and stops pentaho.

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] &#038;&#038; exit 0

unset BASH_ENV ENV

PUSER="pentaho"
PENTAHO_HOME="/opt/pentaho/biserver-ce"
JAVA_HOME="/usr/lib/jvm/jre-1.6.0/"
prog=$"Pentaho server"
logfile="${PENTAHO_HOME}/pentaho.log"

if [ -e "${logfile}" ]; then
    rm -f "${logfile}" > /dev/null
fi

cd ${PENTAHO_HOME}
. "${PENTAHO_HOME}/set-pentaho-java.sh"

if [ -d "${PENTAHO_HOME}/jre" ]; then
    setPentahoJava "${PENTAHO_HOME}/jre" >> ${logfile} 2>&#038;1
else
    setPentahoJava >> ${logfile} 2>&#038;1
fi

PENV="export _PENTAHO_JAVA_HOME=${_PENTAHO_JAVA_HOME} &#038;&#038; export _PENTAHO_JAVA=${_PENTAHO_JAVA} &#038;&#038; export JAVA_OPTS='-Djava.awt.headless=true' &#038;&#038; export JAVA_HOME=${_PENTAHO_JAVA_HOME}"

start() {
    echo -n $"Starting $prog: "

    if [ -e "${PENTAHO_HOME}/promptuser.sh" ]; then
        sh "${PENTAHO_HOME}/promptuser.sh" >> ${logfile} 2>&#038;1
        rm "${PENTAHO_HOME}/promptuser.sh"
    fi

    if [ "$?" = 0 ]; then
        /sbin/runuser -l ${PUSER} -c "${PENV} &#038;&#038; cd '${PENTAHO_HOME}/data' &#038;&#038; sh ./start_hypersonic.sh &#038; " >> ${logfile} 2>&#038;1 &#038;&#038; \
        /sbin/runuser -l ${PUSER} -c "${PENV} &#038;&#038; cd '${PENTAHO_HOME}/tomcat/bin' &#038;&#038; export CATALINA_OPTS='-Xms256m -Xmx768m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000' &#038;&#038; sh ./startup.sh" >> ${logfile} 2>&#038;1 &#038;&#038; echo "OK" || echo "ERROR"

    fi

}

stop() {
    echo -n $"Shutting down $prog: "

    /sbin/runuser -l ${PUSER} -c "${PENV} &#038;&#038; cd '${PENTAHO_HOME}/data' &#038;&#038; sh ./stop_hypersonic.sh &#038; "  >> ${logfile} 2>&#038;1 &#038;&#038; \
    /sbin/runuser -l ${PUSER} -c "${PENV} &#038;&#038; cd '${PENTAHO_HOME}/tomcat/bin' &#038;&#038; sh ./shutdown.sh"  >> ${logfile} 2>&#038;1 &#038;&#038; echo 'OK' || echo "ERROR"

}

# See how we were called.
case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart)
	stop
	sleep 3
	start
	;;
  status)
	ps U 'pentaho' | grep -e 'sh ./start_hypersonic.sh' >> /dev/null &#038;&#038; echo "$prog is running" || echo "$prog is stopped"
	;;
  *)
	echo $"Usage: $0 {start|stop|restart}"
	exit 1
esac
</pre>
<p>Ovviamente sarà necessario configurare le variabili in base alla installazione di Pentaho.</p>
<p>Alla prossima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.morzello.com/?feed=rss2&amp;p=271</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MySQL &#8211; abilitare l&#8217;accesso a root dalla rete</title>
		<link>http://www.morzello.com/?p=264</link>
		<comments>http://www.morzello.com/?p=264#comments</comments>
		<pubDate>Sat, 05 Jun 2010 21:15:17 +0000</pubDate>
		<dc:creator>vittorio</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[System]]></category>

		<guid isPermaLink="false">http://www.morzello.com/?p=264</guid>
		<description><![CDATA[Può capitare a volte di voler accedere all&#8217;istanza presente su una macchina dalla quale non è possibile utilizzare strumenti visuali quali:

MySQL Administrator
MySQL Workbench

è ad esempio il caso di CentOS, dove questi strumenti sono difficili da installare. A mio avviso un metodo veloce per arginare il problema è quello di utilizzare il comando mysql in locale [...]]]></description>
			<content:encoded><![CDATA[<p>Può capitare a volte di voler accedere all&#8217;istanza presente su una macchina dalla quale non è possibile utilizzare strumenti visuali quali:</p>
<ul>
<li>MySQL Administrator</li>
<li>MySQL Workbench</li>
</ul>
<p>è ad esempio il caso di CentOS, dove questi strumenti sono difficili da installare. A mio avviso un metodo veloce per arginare il problema è quello di utilizzare il comando <strong>mysql</strong> in locale per abilitare l&#8217;accesso all&#8217;utente root dalla rete. Una volta apportate tutte le modifiche del caso, sarà sufficiente ristabilire le restrizioni volute.</p>
<p>Per accedere alla console di mysql basta usare il comando:</p>
<pre>
mysql -uroot -p
</pre>
<p>dopo aver digitato la password ci ritroveremo nell&#8217;ambiente del db e potremo abilitare l&#8217;accesso dall&#8217;esterno con due comandi:</p>
<pre>
grant all privileges on mysql.* to root@"NOMEPC" identified by 'MIA_PASSWORD';
flush privileges;
</pre>
<p>Dove <em>NOMEPC</em> è l&#8217;indirzzo della macchina dalla quale vogliamo accedere (indicando &#8216;%&#8217; abilitiamo tutta la rete) e <em>MIA_PASSWORD</em> è la password che vogliamo usare per la connessione.</p>
<p>Ora è possibile fare le modifiche del caso da un altro pc.</p>
<p>Alla prossima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.morzello.com/?feed=rss2&amp;p=264</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BackupPC ed errore Perl su CentOS x64</title>
		<link>http://www.morzello.com/?p=244</link>
		<comments>http://www.morzello.com/?p=244#comments</comments>
		<pubDate>Thu, 13 May 2010 09:01:54 +0000</pubDate>
		<dc:creator>vittorio</dc:creator>
				<category><![CDATA[Senza categoria]]></category>

		<guid isPermaLink="false">http://www.morzello.com/?p=244</guid>
		<description><![CDATA[Ho notato che in questi giorni, installando BackupPC su CentOS a 64bit si incorre in un errore al quanto criptico duarante il tentativo di avvio del servizio:

 service backuppc start
Starting BackupPC: Can't locate BackupPC/Lib.pm in @INC (@INC contains: /usr/lib /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/bin/BackupPC line 60.
BEGIN failed--compilation aborted at [...]]]></description>
			<content:encoded><![CDATA[<p>Ho notato che in questi giorni, installando BackupPC su CentOS a 64bit si incorre in un errore al quanto criptico duarante il tentativo di avvio del servizio:</p>
<pre>
 service backuppc start
Starting BackupPC: Can't locate BackupPC/Lib.pm in @INC (@INC contains: /usr/lib /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/bin/BackupPC line 60.
BEGIN failed--compilation aborted at /usr/bin/BackupPC line 60.
                                                           [FAILED]
</pre>
<p>Si tratta di un bug che può agevolmente essere risolto ripristinando i riferimenti corretti a Perl all&#8217;interno del codice di BackupPC.<br />
Per quanto riguarda il file <em>/usr/bin/BackupPC</em> ad esempio, è necessario sostituire la riga in <strong>&#8216;use lib &#8220;/usr/lib&#8221;;&#8217;</strong>:</p>
<pre>
use strict;
no  utf8;
use vars qw(%Status %Info $Hosts);
use lib "/usr/lib";
use BackupPC::Lib;
use BackupPC::FileZIO;
use Encode qw/decode_utf8/;
</pre>
<p>con <strong>&#8216;use lib &#8220;/usr/lib64&#8243;;&#8217;</strong>:</p>
<pre>
use strict;
no  utf8;
use vars qw(%Status %Info $Hosts);
use lib "/usr/lib64";
use BackupPC::Lib;
use BackupPC::FileZIO;
use Encode qw/decode_utf8/;
</pre>
<p>Per evitare di apportare queste modifiche in tutti i punti del codice sorgente, la cosa più comoda è quella di creare un link all&#8217;interno della cartella <em>/usr/lib</em>:</p>
<pre>
cd /usr/lib
ln -s /usr/lib64/BackupPC BackupPC
</pre>
<p>Ed il gioco è fatto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.morzello.com/?feed=rss2&amp;p=244</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installare BackupPC su CentOS</title>
		<link>http://www.morzello.com/?p=208</link>
		<comments>http://www.morzello.com/?p=208#comments</comments>
		<pubDate>Thu, 13 May 2010 08:20:20 +0000</pubDate>
		<dc:creator>vittorio</dc:creator>
				<category><![CDATA[Senza categoria]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[backuppc]]></category>
		<category><![CDATA[centos]]></category>

		<guid isPermaLink="false">http://www.morzello.com/?p=208</guid>
		<description><![CDATA[BackupPc è sicuramente una comoda soluzione per fare il backup di più macchine in rete.
Al momento in cui scrivo, CentOS non prevede un pacchetto all&#8217;interno della propria distribuzione, rendendo l&#8217;uso del software non proprio agevole. Per questo motivo ho deciso di scrivere questa breve guida che spiega come installare e configurare il software.
Come sempre, prima [...]]]></description>
			<content:encoded><![CDATA[<p>BackupPc è sicuramente una comoda soluzione per fare il backup di più macchine in rete.<br />
Al momento in cui scrivo, CentOS non prevede un pacchetto all&#8217;interno della propria distribuzione, rendendo l&#8217;uso del software non proprio agevole. Per questo motivo ho deciso di scrivere questa breve guida che spiega come installare e configurare il software.</p>
<p>Come sempre, prima di partire è bene disabilitare temporaneamente <strong>SELinux</strong> ed <strong>Iptables</strong>. Questi verranno riabilitati alla fine dell&#8217;installazione:</p>
<pre>/usr/sbin/service iptables stop
bash: /usr/sbin/service: No such file or directory
[root@francesca /]# /sbin/service iptables stop
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading iptables modules:                                [  OK  ]
</pre>
<p>Come dicevamo prima, non potendo usare il repository di default, dovremo utilizzarne uno esterno:</p>
<pre>yum install backuppc
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
...
Setting up Install Process
No package backuppc available.
Nothing to do
</pre>
<p>Abbiamo dunque bisogno di un repository di test. Istruzioni su come attivare repository esterni alla distribuzione sono disponibili <a href="http://www.morzello.com/?p=184">qui</a>.</p>
<p>Se avete seguito le istruzioni relative ai repository riportate nell&#8217;articolo, potrete installare backuppc tramite il comando:</p>
<pre>yum --enablerepo=c5-testing install backuppc mod_perl httpd
</pre>
<p>Il comando provvederà ad installare anche eventuali dipendenze:</p>
<pre>
Dependencies Resolved

================================================================================
 Package                       Arch     Version              Repository    Size
================================================================================
Installing:
 backuppc                      i386     3.1.0-1.el5.centos   c5-testing   667 k
Installing for dependencies:
 perl-Archive-Zip              noarch   1.16-1.2.1           base         138 k
 perl-Class-Singleton          i386     1.03-1.2.el5.rf      rpmforge      14 k
 perl-Compress-Raw-Bzip2       i386     2.021-1.el5.rf       rpmforge     108 k
 perl-Compress-Raw-Zlib        i386     2.021-1.el5.rf       rpmforge     169 k
 perl-DateTime                 i386     0.4305-1.el5.rf      rpmforge     134 k
 perl-DateTime-Format-Mail     noarch   0.3001-1.el5.rf      rpmforge      25 k
 perl-DateTime-Format-W3CDTF   noarch   0.04-1.el5.rf        rpmforge      16 k
 perl-DateTime-Locale          noarch   0.4001-1.el5.rf      rpmforge     1.7 M
 perl-DateTime-TimeZone        i386     0.46-1.el5.rf        rpmforge     361 k
 perl-File-RsyncP              i386     0.68-1.el5.rf        rpmforge     179 k
 perl-HTML-Parser              i386     3.55-1.fc6           base          92 k
 perl-HTML-Tagset              noarch   3.10-2.1.1           base          15 k
 perl-IO-Compress              noarch   2.021-1.el5.rf       rpmforge     238 k
 perl-List-MoreUtils           i386     0.25.1-1.el5.rf      rpmforge     104 k
 perl-Params-Validate          i386     0.91-1.el5.rf        rpmforge     104 k
 perl-Time-modules             noarch   2006.0814-1.el5.rf   rpmforge      38 k
 perl-XML-Parser               i386     2.34-6.1.2.2.1       base         210 k
 perl-XML-RSS                  noarch   1.45-1.el5.rf        rpmforge      62 k
 perl-libwww-perl              noarch   5.805-1.1.1          base         376 k

Transaction Summary
================================================================================
Install     20 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 4.7 M
</pre>
<p><strong>Configurare il frontend</strong><br />
Ora è la volta di <strong>Apache</strong> che verrà utilizzato come frontend per la gestione dei backup. Seguendo <a href="http://wiki.centos.org/HowTos/BackupPC" target="_blank">l&#8217;HOW-TO</a> riportato sul sito di CentOS la configurazione sarà modificata per consentire l&#8217;esecuzione di Apache come utente diverso.<br />
A mio parere questo potrebbe avere implicazioni non trascurabili sulla sicurezza e sull&#8217;assetto della distribuzione, senza considerare il fatto che Apache verrebbe dedicato interamente al backup.</p>
<p>Preferisco invece eseguire una seconda istanza del webserver con i soli plug-in necessari a far giare BackupPC. Per questo motivo copiamo il file di configurazione esistente in un nuovo file:</p>
<pre>cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/backuppc_httpd.conf
</pre>
<p>modificando i paramentri essenziali:</p>
<pre>PidFile run/backuppc_httpd.pid
Listen 81
User backuppc
#Allow from all
</pre>
<p>Possiamo inoltre disabilitare tutti i plug-in che non sono necessari al frontend. Per comodità riporto un file di configurazione utile come esempio:</p>
<pre>ServerTokens OS
ServerRoot "/etc/httpd"
PidFile run/httpd_backuppc.pid
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
Include conf.d/perl.conf

StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000

StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0

Listen 81

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
#LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so

#ExtendedStatus On

User backuppc
Group apache

ServerAdmin root@localhost
#ServerName www.example.com:80
UseCanonicalName Off
#DocumentRoot "/var/www/html"
DocumentRoot "/var/lib/backuppc"

    Options FollowSymLinks
    AllowOverride None

    UserDir disable
    #UserDir public_html

DirectoryIndex index.html index.html.var

AccessFileName .htaccess

    Order allow,deny
    Deny from all

TypesConfig /etc/mime.types

DefaultType text/plain

#   MIMEMagicFile /usr/share/magic.mime
    MIMEMagicFile conf/magic

HostnameLookups Off

ErrorLog logs/backuppc_error_log

LogLevel warn

LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
LogFormat "%{Referer}i -&gt; %U" referer
LogFormat "%{User-agent}i" agent

CustomLog logs/backuppc_access_log combined

ServerSignature On

Alias /icons/ "/var/www/icons/"

    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all

    # Location of the WebDAV lock database.
    DAVLockDB /var/lib/dav/lockdb

IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*

AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core

AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^

DefaultIcon /icons/unknown.gif

#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz

ReadmeName README.html
HeaderName HEADER.html

IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw

LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

ForceLanguagePriority Prefer Fallback

AddDefaultCharset UTF-8

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

AddHandler type-map var

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

Alias /error/ "/var/www/error/"

        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en es de fr
        ForceLanguagePriority Prefer Fallback

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0

BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

alias /backuppc /usr/share/backuppc

   SetHandler perl-script
   PerlResponseHandler ModPerl::Registry
   PerlOptions +ParseHeaders
   Options +ExecCGI
   Order deny,allow
   Deny from all
   Allow from 192.168.0
   Allow from 127.0.0.1
   AuthName "Backup Admin"
   AuthType Basic
   AuthUserFile /var/lib/backuppc/passwd/htpasswd
   Require valid-user
</pre>
<p>Per verificare che il file sia formalmente valido possiamo eseguire un test preliminare:</p>
<pre>/usr/sbin/httpd -f /etc/httpd/conf/backuppc_httpd.conf -t
Syntax OK
</pre>
<p>Prima di provare il servizio impostiamo una password per l&#8217;accesso al frontend:</p>
<pre>htpasswd -c /var/lib/backuppc/passwd/htpasswd backup_manager
New password: your_password
Re-type new password: your_password
Adding password for user backup_manager
</pre>
<p>Arriva ora il momento di avviare una seconda instanza di Apache per verificare che tutto sia in ordine:</p>
<pre>/usr/sbin/httpd -f /etc/httpd/conf/backuppc_httpd.conf -k start
</pre>
<p>Se tutto funziona correttamente possiamo procedere con le opportune modifiche necessarie a far partire il servizio all&#8217;avvio del sistema. Anche in questo caso faremo una copia del file utilizzato dal webserver:</p>
<pre>cp /etc/init.d/httpd /etc/init.d/backuppc_httpd
</pre>
<p>Anche in questo caso per comodità riporto un esempio:</p>
<pre>#!/bin/bash
#
# backuppc_httpd   Startup script for the Apache HTTP Server (BackupPC)
#
# chkconfig: - 90 34
# description: BackupPC stand alone web server 

# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 0
fi

# Avoid using root's TMPDIR
unset TMPDIR

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] &amp;&amp; exit 1

RETVAL=0

start() {
   KIND="BackupPC Web Server"
   echo -n $"Starting  service: "
   /usr/sbin/httpd -f /etc/httpd/conf/backuppc_httpd.conf -k start &amp;&amp; echo "OK" || echo "Error"
   RETVAL=0
   echo
   return
}

stop() {
   KIND="BackupPC Web Server"
   echo -n $"Shutting down  services: "
   /usr/sbin/httpd -f /etc/httpd/conf/backuppc_httpd.conf -k stop &amp;&amp; echo "OK" || echo "Error"
   RETVAL=0
   echo
   return
}

restart() {
   stop
   sleep 5
   start
}

case "$1" in
start)
   start
   ;;
stop)
   stop
   ;;
restart)
   restart
   ;;
*)
   echo $"Usage: $0 {start|stop|restart}"
   exit 1
esac

exit 0
</pre>
<p>Useremo <strong>chkconfig</strong> per rendere il servizio attivo all&#8217;avvio:</p>
<pre>/sbin/chkconfig backuppc_httpd --add
/sbin/chkconfig --level 2345 backuppc_httpd on
</pre>
<p><strong>Configurare BackupPC</strong><br />
Finito con il frontend passiamo a personalizzare il file <em>/etc/BackupPC/config.pl</em> che contiene i parametri necessari al backup. L&#8217;articolo si occupa di spiegare come configuare CentOS per la corretta esecuzione del pacchetto. Per maggiori informazioni è necessario seguire l&#8217;help online.</p>
<p>Una modifca importante da fare però riguarda la necessità di dover dare all&#8217;utente <strong>backuppc</strong> l&#8217;accesso all&#8217;intero file system tramite il comando tar altrimenti non sarà possibile procedere con il backup completo del sistema. Editiamo il file <em>/etc/sudoers</em> impostando i seguenti parametri:</p>
<pre>
#Defaults    requiretty
Defaults !lecture

backuppc ALL=NOPASSWD:/bin/gtar,/bin/tar
</pre>
<p>Come abbiamo già fatto per il frontend, possiamo abilitare l&#8217;avvio automatico del servizio tramite chkconfig:</p>
<pre>
chkconfig backuppc on
</pre>
<p><strong>Prima di concludere</strong><br />
Al momento in cui scrivo questo articolo, esiste un piccolo baco facile da risolvere. Se per caso i link alla documentazione in linea non dovessero funzionare, potete eseguire i seguenti comandi per ripristinarli:</p>
<pre>
mkdir /usr/doc
ln -s /usr/share/doc/backuppc*/BackupPC.html /usr/doc/BackupPC.html
</pre>
<p>Alla prossima. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.morzello.com/?feed=rss2&amp;p=208</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS: accedere alle partizioni NTFS</title>
		<link>http://www.morzello.com/?p=193</link>
		<comments>http://www.morzello.com/?p=193#comments</comments>
		<pubDate>Thu, 11 Mar 2010 16:53:12 +0000</pubDate>
		<dc:creator>vittorio</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[fuse]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mount]]></category>
		<category><![CDATA[ntfs]]></category>

		<guid isPermaLink="false">http://www.morzello.com/?p=193</guid>
		<description><![CDATA[Capita a volte di dover accedere a partizioni Windows (NTFS) da Linux ma non tutte le distribuzioni supportano nativamente la lettura/scrittura di queste partizioni. CentOS in particolare non ha il supporto a queste partizioni ne dentro il kernel ne dentro il repository ufficiale.
E&#8217; comunque possibile accedere alle partizioni di Windows mediante il pacchetto fuse disponibile [...]]]></description>
			<content:encoded><![CDATA[<p>Capita a volte di dover accedere a partizioni Windows (<span style="font-weight: bold;">NTFS</span>) da Linux ma non tutte le distribuzioni supportano nativamente la lettura/scrittura di queste partizioni. <span style="font-weight: bold;">CentOS </span>in particolare non ha il supporto a queste partizioni ne dentro il kernel ne dentro il repository ufficiale.</p>
<p>E&#8217; comunque possibile accedere alle partizioni di Windows mediante il pacchetto <span style="font-weight: bold;">fuse </span>disponibile sul repository di <span style="font-style: italic;">rpmforge</span>. Per maggiori informazioni su come aggiungere ed abilitare un repository aggiuntivo per CentOS, potete consultare questo link:</p>
<p><a href="http://www.morzello.com/dblog/articolo.asp?articolo=68">http://www.morzello.com/dblog/articolo.asp?articolo=68</a></p>
<p>Nell&#8217;esempio che segue, vedremo come montare una partizione ntfs in una cartella di linux come ad esempio <span style="font-style: italic;">/mnt/usb</span>.</p>
<p>Per prima cosa, verifichiamo la <span style="font-weight: bold;">tavola delle partizioni</span> del disco. Nel nostro caso si tratta di un disco usb esterno:</p>
<pre class="sourcecode">
fdisk -l /dev/sdb

Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       15298   122881153+   6  FAT16
/dev/sdb2           15299       22947    61440592+   7  HPFS/NTFS
</pre>
<p>Nel caso volessimo montare la seconda partizione senza supporto, riceveremmo un messaggio simile a questo:</p>
<pre class="sourcecode">
mount /dev/sdb2 /mnt/usb
mount: unknown filesystem type 'ntfs'
</pre>
<p>Per risolvere il problema procediamo dunque all&#8217;installazione dei pacchetti necessari dal repository di rpmforge:</p>
<pre class="sourcecode">
yum install fuse fuse-ntfs-3g
Loaded plugins: fastestmirror, priorities
Determining fastest mirrors
 * addons: ftp.uni-bayreuth.de
 * base: ftp.uni-bayreuth.de
 * extras: ftp.uni-bayreuth.de
 * rpmforge: apt.sw.be
 * updates: ftp.hosteurope.de
addons                                                   |  951 B     00:00
base                                                     | 2.1 kB     00:00
extras                                                   | 2.1 kB     00:00
rpmforge                                                 | 1.1 kB     00:00
updates                                                  | 1.9 kB     00:00
updates/primary_db                                       | 554 kB     00:00
478 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package fuse.i386 0:2.7.4-8.el5 set to be updated
---> Package fuse-ntfs-3g.i386 0:2009.11.14-1.el5.rf set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package            Arch       Version                     Repository      Size
================================================================================
Installing:
 fuse               i386       2.7.4-8.el5                 base            83 k
 fuse-ntfs-3g       i386       2009.11.14-1.el5.rf         rpmforge       552 k

Transaction Summary
================================================================================
Install      2 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 635 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): fuse-2.7.4-8.el5.i386.rpm                              |  83 kB     00:00
(2/2): fuse-ntfs-3g-2009.11.14-1.el5.rf.i386.rpm              | 552 kB     00:00
--------------------------------------------------------------------------------
Total                                                352 kB/s | 635 kB     00:01
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : fuse                                                      1/2
  Installing     : fuse-ntfs-3g                                              2/2

Installed:
  fuse.i386 0:2.7.4-8.el5
  fuse-ntfs-3g.i386 0:2009.11.14-1.el5.rf

Complete!
</pre>
<p>Ora è possibile ripetere il comando <span style="font-style: italic;">mount </span>come mostrato in precedenza.</p>
<p>Alla prossima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.morzello.com/?feed=rss2&amp;p=193</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usare Ping In Script Batch</title>
		<link>http://www.morzello.com/?p=190</link>
		<comments>http://www.morzello.com/?p=190#comments</comments>
		<pubDate>Tue, 09 Mar 2010 09:14:25 +0000</pubDate>
		<dc:creator>vittorio</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[bat]]></category>
		<category><![CDATA[cmd]]></category>
		<category><![CDATA[dos]]></category>
		<category><![CDATA[errorlevel]]></category>
		<category><![CDATA[findstr]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[vbs]]></category>
		<category><![CDATA[vbscript]]></category>

		<guid isPermaLink="false">http://www.morzello.com/?p=190</guid>
		<description><![CDATA[Tempo fa avevo presentato un articolo che mostra come utilizzare il comando ping all&#8217;interno di un batch script: 
  http://www.morzello.com/dblog/articolo.asp?articolo=41 
 Come spiegato, il comando restituisce sempre lo stesso errorlevel, rendendo vano un eventuale tentativo di capire se il ping è andato a buon fine o meno all&#8217;interno di uno script. 
 Oggi presento [...]]]></description>
			<content:encoded><![CDATA[<p>Tempo fa avevo presentato un articolo che mostra come utilizzare il comando <span style="font-weight: bold;">ping </span>all&#8217;interno di un <span style="font-weight: bold;">batch script</span>: </p>
<p> <a href="http://www.morzello.com/dblog/articolo.asp?articolo=41"> http://www.morzello.com/dblog/articolo.asp?articolo=41</a> </p>
<p> Come spiegato, il comando restituisce sempre lo stesso <span style="font-weight: bold;">errorlevel</span>, rendendo vano un eventuale tentativo di capire se il ping è andato a buon fine o meno all&#8217;interno di uno script. </p>
<p> Oggi presento una variante che consente di ottenere lo stesso risultato <span style="font-weight: bold;">senza </span>dover scrivere <span style="font-weight: bold;">codice vbscript</span>. </p>
<p>Di seguito trovate un piccolo file .BAT (o .CMD) che potete utilizzare per testare l&#8217;esito di un ping: </p>
<pre class="sourceclass">
ping nomeserver | findstr "TTL="
echo %errorlevel%
</pre>
<p>Mentre il comando ping restituisce sempre lo stesso errorlevel, <span style="font-weight: bold;">findstr </span>discrimina l&#8217;uscita a seconda che nell&#8217;output esista o meno una corrispondenza utile. A questo punto possiamo testare l&#8217;uscita del comando findstr invece che di ping. </p>
<p> Alla prossima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.morzello.com/?feed=rss2&amp;p=190</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Resize di partizioni LVM</title>
		<link>http://www.morzello.com/?p=187</link>
		<comments>http://www.morzello.com/?p=187#comments</comments>
		<pubDate>Fri, 05 Mar 2010 18:07:52 +0000</pubDate>
		<dc:creator>vittorio</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[resize]]></category>
		<category><![CDATA[shrink]]></category>

		<guid isPermaLink="false">http://www.morzello.com/?p=187</guid>
		<description><![CDATA[Mi &#232; capitato di recente, di dover migrare un piccolo server Linux su un server ESXi 4. La memoria ram della versione virtualizzata &#232; stata espansa di 512 MB rendendo necessario una espansione della partizione di swap. Come accade per diverse distribuzioni che utilizzano LVM per gestire il file system (CentOS, Fedora,&#8230;) per variare le [...]]]></description>
			<content:encoded><![CDATA[<p>Mi &egrave; capitato di recente, di dover migrare un piccolo server Linux su un server ESXi 4. La memoria ram della versione virtualizzata &egrave; stata espansa di 512 MB rendendo necessario una espansione della partizione di swap. Come accade per diverse distribuzioni che utilizzano <span style="font-weight: bold;">LVM </span>per gestire il file system (CentOS, Fedora,&#8230;) per variare le dimensioni di una partizione (<span style="font-weight: bold;">resizing</span>) bisogna tenere in considerazione alcuni fattori critici come ad esempio il rischio di perdere dati importanti presenti sul disco.</p>
<p>L&#8217;esempio che segue mostra come ridurre la partizione LVM destinata al sistema operativo al fine di estenderne quella di swap. I comandi elencati per&ograve; possono essere utilizzati ovunque sia necessario fare il resize di partizioni LVM.</p>
<p><span style="font-weight: bold;">Individuare e gestire le partizioni LVM</span><br />Nel caso in cui il sistema operativo sia stato installato come consigliato dalla distribuzione, allora i volumi logici presenti sul disco conterranno l&#8217;intera distribuzione ad esclusione della partizione di boot. Questo vuol dire che per accedere al disco per fare le opportune modifiche &egrave; necessario accedervi dall&#8217;esterno. Per fare questo &egrave; sufficiente fare il boot da chiavetta usb o da distribuzione live.</p>
<p>A me piace tanto Fedora, di conseguenza, per questo esempio, prender&ograve; in considerazione il cd live di Fedora, disponibile sul sito:</p>
<p><a target="_blank" href="http://fedoraproject.org/get-fedora">http://fedoraproject.org/get-fedora</a></p>
<p>Una volta fatto il boot da cdrom avremo la possibilit&agrave; di verificare l&#8217;esistenza di partizioni LVM sul disco fisso. Basta aprire una finestra terminale ed impartire i seguenti comandi con credenziali di root:</p>
<pre class="sourcecode">
[root@localhost liveuser]# su
[root@localhost liveuser]# pvscan
  PV /dev/sda2   VG VolGroup01   lvm2 [79.88 GB / 0    free]
  Total: 1 [79.88 GB] / in use: 1 [79.88 GB] / in no VG: 0 [0   ]

[root@localhost liveuser]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup01" using metadata type lvm2

[root@localhost liveuser]# lvscan
  ACTIVE            '/dev/VolGroup01/LogVol00' [78.88 GB] inherit
  ACTIVE            '/dev/VolGroup01/LogVol01' [1.00 GB] inherit
</pre>
<p>Si tratta di un disco da 80 GB&nbsp; (<span style="font-style: italic;">sda</span>) con due partizioni fisiche: <span style="font-style: italic;">sda1</span> per il boot ed <span style="font-style: italic;">sda2 </span>per LVM.<br />Dai comandi impartiti si evince che il dispositivo <span style="font-style: italic;">/dev/sda2</span> contiene un gruppo logico (<span style="font-style: italic;">VolGroup01</span>) con due partizioni (<span style="font-style: italic;">LogVol00 </span>per il sistema operativo e <span style="font-style: italic;">LogVol01 </span>per lo swap).</p>
<p>Prima di procedere con il resize delle partizioni logiche bisogna essere certi che non vi siano dati nella parte finale del primo volume (<span style="font-style: italic;">LogVol00</span>) altrimenti questi saranno irrimediabilmente persi. Questa considerazione va fatta dal momento che per aggiungere un numero variabile di byte alla partizione di swap, bisogna prima sottrarli a quella del sistema operativo. Ovvio che se la partizione del SO &egrave; piena, il resize non sar&agrave; possibile.</p>
<p><span style="font-weight: bold;">Il resize delle partizioni logiche</span><br />Poich&egrave; LogVol00 &egrave; di tipo ext3, possiamo deframmentare l&#8217;unit&agrave; in modo da lasciare libero lo spazio in coda (<span style="font-weight: bold;">shrinking</span>):</p>
<pre class="sourcecode">
[root@localhost liveuser]# e2fsck -f /dev/VolGroup01/LogVol00
e2fsck 1.41.9 (22-Aug-2009)
Adding dirhash hint to filesystem.

Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/dev/VolGroup01/LogVol00: ***** FILE SYSTEM WAS MODIFIED *****
/dev/VolGroup01/LogVol00: 107628/20676608 files (1.3% non-contiguous), 1409699/20676608 blocks
</pre>
<p>Fatto questo procediamo con il resize della partizione ext3</p>
<pre class="sourcecode">
[root@localhost liveuser]# resize2fs /dev/VolGroup01/LogVol00 77880M
resize2fs 1.41.9 (22-Aug-2009)
Resizing the filesystem on /dev/VolGroup01/LogVol00 to 19937280 (4k) blocks.
The filesystem on /dev/VolGroup01/LogVol00 is now 19937280 blocks long.
</pre>
<p>Con il comando precedente abbiamo tolto alla partizione <span style="font-style: italic;">1 G</span> definendo le nuove dimensioni (<span style="font-style: italic;">77880M</span>)</p>
<p>Adesso finalmente possiamo contrarre la partizione logica del primo volume ed estendere la seconda:</p>
<pre class="sourcecode">
[root@localhost liveuser]# lvresize /dev/VolGroup01/LogVol00 --size -1G
  WARNING: Reducing active logical volume to 77.88 GB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LogVol00? [y/n]: y
  Reducing logical volume LogVol00 to 77.88 GB
  Logical volume LogVol00 successfully resized

[root@localhost liveuser]# lvresize /dev/VolGroup01/LogVol01 --size +1G
  Extending logical volume LogVol01 to 2.00 GB
  Logical volume LogVol01 successfully resized
</pre>
<p>In questo caso abbiamo utilizzato valori relativi (<span style="font-style: italic;">-/+1 G</span>)</p>
<p>Per finire, possiamo procedere con la formattazione della nuova partizione di swap</p>
<pre class="sourcecode">
[root@localhost ~]# mkswap /dev/VolGroup01/LogVol01
Setting up swapspace version 1, size = 2147479 kB
</pre>
<p>Dopo un reboot tutto &egrave; pronto.<br />Alla prossima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.morzello.com/?feed=rss2&amp;p=187</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Repository aggiuntivi in CentOS e Fedora</title>
		<link>http://www.morzello.com/?p=184</link>
		<comments>http://www.morzello.com/?p=184#comments</comments>
		<pubDate>Tue, 02 Mar 2010 03:54:29 +0000</pubDate>
		<dc:creator>vittorio</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[rpm]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://www.morzello.com/?p=184</guid>
		<description><![CDATA[Come tutte le grandi distribuzioni open source, sia CentOS che Fedora godono  di un ampio repository ed offrono supporto ad una vasta gamma di programmi.
Non tutte le applicazioni però sono disponibili all&#8217;interno della distribuzione e di conseguenza nel repository ufficiale.
Repository non ufficiali possono essere utilizzati come valida alternativa alla compilazione dei sorgenti.
Bisogna però fare [...]]]></description>
			<content:encoded><![CDATA[<p>Come tutte le grandi distribuzioni open source, sia <span style="font-weight: bold;">CentOS </span>che <span style="font-weight: bold;">Fedora </span>godono  di un ampio repository ed offrono supporto ad una vasta gamma di programmi.</p>
<p>Non tutte le applicazioni però sono disponibili all&#8217;interno della distribuzione e di conseguenza nel repository ufficiale.</p>
<p>Repository non ufficiali possono essere utilizzati come valida alternativa alla compilazione dei sorgenti.</p>
<p>Bisogna però fare attenzione perché utilizzare repository sconosciuti potrebbe compromettere il sistema operativo, sia dal punto di vista della sicurezza che da quello della stabilità.</p>
<p>In questo articolo spiegheremo brevemente come accedere a repository non ufficiali tramite <span style="font-weight: bold;">yum</span>.</p>
<p><span style="font-weight: bold;">La priorità dei repository</span><br />Quando si ha a che fare con più repository esiste un <span style="font-weight: bold;">concetto di priorità </span>che bisogna tenere in considerazione altrimenti si rischia di fare l&#8217;aggiornamento dei pacchetti di base su un repository non ufficiale come ad esempio quello di test.</p>
<p>Yum consente di priorizzare i repository in base alle proprie esigenze mediante un apposito plugin che può essere installato con il seguente comando:</p>
<pre class="sourcecode">
yum install yum-priorities
</pre>
<p>Per consentire l&#8217;uso dei plugin in yum è necessario modificare il file<span style="font-style: italic;"> /etc/yum.conf</span>:</p>
<pre class="sourcecode">
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1

# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h

installonly_limit = 5

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
</pre>
<p>aggiungendo eventualmente la riga <span style="font-weight: bold;">&#8220;plugins=1&#8243;</span></p>
<p>Un seconda abilitazione deve essere fatta per ogni singolo plugin installato. Nel nostro caso quindi bisogna modificare il file<span style="font-style: italic;"> /etc/yum/pluginconf.d/priorities.conf </span>impostando il parametro <span style="font-weight: bold;">enabled</span>:</p>
<pre class="sourcecode">
[main]
enabled = 1
</pre>
<p>Una volta abilitato il plugin è possibile gestire la priorita di ogni repository aggiungendo il parametro <span style="font-weight: bold;">priority=N</span> in nel relativo file di configurazione. N è un numero che va da 1 a 99 ed esprime una gerarchia. A valori di N più elevati corrispondono repository con priorità più bassa.</p>
<p>Nella cartella <span style="font-style: italic;">/etc/yum.repos.d</span> sono presenti i files relativi ai singoli repository. L&#8217;esempio seguente si riferisce al file <span style="font-style: italic;">/etc/yum.repos.d/CentOS-Base.repo</span>:</p>
<pre class="sourcecode">
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&#038;arch=$basearch&#038;repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&#038;arch=$basearch&#038;repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&#038;arch=$basearch&#038;repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&#038;arch=$basearch&#038;repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&#038;arch=$basearch&#038;repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=2

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&#038;arch=$basearch&#038;repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=2
</pre>
<p>Da notare come i repository di base abbiano tutti priorità 1.</p>
<p><span style="font-weight: bold;">Importare il repository di rpmforge</span><br />Prima di importare un nuovo repository è bene<span style="font-weight: bold;"> verificarne l&#8217;autenticità</span>. Ogni repository inoltre dovrebbe essere dotato di una <span style="font-weight: bold;">chiave GPG</span> che consenta a yum di verificare la provenienza dei pacchetti.</p>
<p>Nell&#8217;esempio che segue, aggiungeremo una chiave valida per <span style="font-style: italic;">rpmforge</span>:</p>
<pre class="sourcecode">
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
</pre>
<p>Anche se può sembrare strano, è necessario importare la chiave prima del repository stesso altrimenti yum non sarà in grado di certificarne l’installazione.</p>
<p>Prima di installare il repository bisogna<span style="font-weight: bold;"> identificare l’architettura hardware</span> che si intende utilizzare (ad esempio i386 oppure x86_64). Fare uqesta sceltà è necessaria perché ogni architettura ha un percorso diverso. Per capire con ragionevole certezza quale sia l’architettura corretta è sufficiente impartire il seguente comando:</p>
<pre class="sourcecode">
uname -i
</pre>
<p>A questo punto possiamo scegliere tra:</p>
<ul>
<li><a href="http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm" target=_blank>http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm</a> (i386)</li>
<li><a href="http://apt.sw.be/redhat/el5/en/x86_64/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm" target=_blank>http://apt.sw.be/redhat/el5/en/x86_64/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm</a> (x86_64)</li>
</ul>
<p>dopo aver scaricato il pacchetto procediamo con la verifica: </p>
<pre class="sourcecode">
wget http://apt.sw.be/redhat/el5/en/$(uname -i)/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.$(uname -i).rpm
rpm -K rpmforge-release-0.3.6-1.el5.rf.*.rpm
</pre>
<p>Con una risposta simile a:</p>
<pre class="sourcecode">
rpmforge-release-0.3.6-1.el5.rf.i386.rpm: (sha1) dsa sha1 md5 gpg OK
</pre>
<p>Ora possiamo <span style="font-weight: bold;">procedere con l’installazione</span>:</p>
<pre class="sourcecode">
rpm -i rpmforge-release-0.3.6-1.el5.rf.*.rpm
</pre>
<p>Infine <span style="font-weight: bold;">aggiungiamo una priorità</span> più alta per questo repository:</p>
<pre class="sourcecode">
echo "priority = 5" >> /etc/yum.repos.d/rpmforge.repo
</pre>
<p><span style="font-weight: bold;">Installare repository di test</span><br />Possiamo fare lo stesso discorso con i <span style="font-weight: bold;">repository di test</span>. L’esempio che segue si applica a CentOS 5:</p>
<pre class="sourcecode">
cd /etc/yum.repos.d
wget http://dev.centos.org/centos/5/CentOS-Testing.repo
</pre>
<p>Dando un’occhiata al file noterete che il repository è disabilitato. Questo è molto importante perché in genere i repository di test sono molto instabili ed il loro uso potrebbe essere causa di instabilità in ambienti di produzione.</p>
<p>Quando si intende usare un repository disabilitato è possibile eseguire yum con il parametro <span style="font-weight: bold;">&#8211;enablerepo=REPO</span> dove REPO è il nome del repository. Ad esempio:</p>
<pre class="sourcecode">
yum --enablerepo=c5-testing install pacchetto
</pre>
<p><span style="font-weight: bold;">Altro sui repository</span><br />A fronte di più repository, quando si esegue yum per un aggiornamento del sistema si noterà certamente l’esclusione di alcuni pacchetti:</p>
<pre class="sourcecode">
yum update

Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * addons: centos.bio.lmu.de
 * base: ftp.halifax.rwth-aachen.de
 * extras: centos.bio.lmu.de
 * rpmforge: fr2.rpmfind.net
 * updates: mirror.avalonsys.eu
478 packages excluded due to repository priority protections
Setting up Update Process
No Packages marked for Update
</pre>
<p>Alcuni pacchetti marcati come da aggiornare non saranno scartati se sono marcati come da non aggiornare in un repository con priorità più bassa. Per verificare quali pacchetti sono stati esclusi è possibile usare il parametro <span style="font-weight: bold;">–d3</span>:</p>
<pre class="sourcecode">
yum -d3 update
Loaded plugins: fastestmirror, priorities
Config time: 0.136
Yum Version: 3.2.22
Setting up Package Sacks
Loading mirror speeds from cached hostfile
 * addons: mirror.silyus.net
 * base: ftp.halifax.rwth-aachen.de
 * extras: mirror.silyus.net
 * rpmforge: fr2.rpmfind.net
 * updates: mirror.avalonsys.eu
 --> subversion-perl-1.6.3-0.1.el5.rf.i386 from rpmforge excluded (priority)
 --> php-pecl-memcache-2.1.2-1.el5.rf.i386 from rpmforge excluded (priority)
 --> perl-DBD-Pg-2.10.7-1.el5.rf.i386 from rpmforge excluded (priority)
 --> qemu-0.9.0-2.el5.rf.i386 from rpmforge excluded (priority)
 --> subversion-perl-1.3.2-0.2.el5.rf.i386 from rpmforge excluded (priority)
 --> fuse-2.7.4-1.el5.rf.i386 from rpmforge excluded (priority)
 --> lftp-3.5.11-1.el5.rf.i386 from rpmforge excluded (priority)
...
</pre>
<p>Alla prossima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.morzello.com/?feed=rss2&amp;p=184</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configurare il layout di default durante il logon (Windows)</title>
		<link>http://www.morzello.com/?p=181</link>
		<comments>http://www.morzello.com/?p=181#comments</comments>
		<pubDate>Sun, 14 Feb 2010 11:50:16 +0000</pubDate>
		<dc:creator>vittorio</dc:creator>
				<category><![CDATA[System]]></category>
		<category><![CDATA[impostazioni internazionali]]></category>
		<category><![CDATA[keyb]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[logon]]></category>
		<category><![CDATA[regedit]]></category>
		<category><![CDATA[regional settings]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.morzello.com/?p=181</guid>
		<description><![CDATA[Avete installato una versione inglese di windows e durante il logon non riuscite ad inserire la password correttamente perchè i caratteri speciali non corrispondono a quelli indicati sulla tastiera?
Secondo Microsoft è sufficiente indicare le impostazioni internazionali di default tramite l&#8217;icona &#8220;regional Settings&#8221; (Impostazioni Internazionali) presente nel pannello di controllo:


Per quanto riguarda il logon questo non [...]]]></description>
			<content:encoded><![CDATA[<p>Avete installato una versione inglese di windows e durante il logon non riuscite ad inserire la password correttamente perchè i caratteri speciali non corrispondono a quelli indicati sulla tastiera?</p>
<p>Secondo Microsoft è sufficiente indicare le impostazioni internazionali di default tramite l&#8217;icona &#8220;regional Settings&#8221; (Impostazioni Internazionali) presente nel pannello di controllo:</p>
</p>
<p><center><a href="http://www.morzello.com/public/67-01.png"><img src="http://www.morzello.com/public/67-01.png" width="400" alt="" /></a></center></p>
<p>Per quanto riguarda il logon questo non basta.</p>
<p>La soluzione che vi propongo consiste nel mettere mano al file di registro.</p>
</p>
<pre class="sourcecode">Windows Registry Editor Version 5.00
[HKEY_USERS\.DEFAULT\Keyboard Layout\Preload]
"1"="00000410"
"2"="00000409"
</pre>
</p>
<p>Basta copiare ed incollare le righe seguenti in un file di testo con estensione &#8220;.reg&#8221; e successivamente importarlo nel file di registro cliccando due volte sul file:</p>
<p>In questo modo la tastiera italiana (cod 410) verrà caricata al posto di quella inglese (cod 409).</p>
<p>Un elenco completo delle lingue supportate è disponibile sempre nel file di registro ma ad un indirizzo diverso:</p>
</p>
<pre class="sourcecode">HKLM\SYSTEM\CurrentControlSet\Control\KeyboardLayout\DosKeybCodes
</pre>
</p>
<p>Per comodità riporto i codici nella tabella seguente.</p>
<p>
<center></p>
<table border="0" width="49%">
<tbody>
<tr>
<td width="21%">00000402</td>
<td width="79%">Bulgarian</td>
</tr>
<tr>
<td width="21%">0000041a</td>
<td width="79%">Croatian</td>
</tr>
<tr>
<td width="21%">00000405</td>
<td width="79%">Czech</td>
</tr>
<tr>
<td width="21%">00000406</td>
<td width="79%">Danish</td>
</tr>
<tr>
<td width="21%">00000413</td>
<td width="79%">Dutch (Standard)</td>
</tr>
<tr>
<td width="21%">00000813</td>
<td width="79%">Dutch (Belgian)</td>
</tr>
<tr>
<td width="21%">00000c09</td>
<td width="79%">English (Australian)</td>
</tr>
<tr>
<td width="21%">00001009</td>
<td width="79%">English (Canadian)</td>
</tr>
<tr>
<td width="21%">00001809</td>
<td width="79%">English (Irish)</td>
</tr>
<tr>
<td width="21%">00000409</td>
<td width="79%">English (United States)</td>
</tr>
<tr>
<td width="21%">00000809</td>
<td width="79%">English (United Kingdom)</td>
</tr>
<tr>
<td width="21%">00001409</td>
<td width="79%">English (New Zealand)</td>
</tr>
<tr>
<td width="21%">0000040b</td>
<td width="79%">Finnish</td>
</tr>
<tr>
<td width="21%">0000040c </td>
<td width="79%">French (Standard)</td>
</tr>
<tr>
<td width="21%">0000080c</td>
<td width="79%">French (Belgian)</td>
</tr>
<tr>
<td width="21%">0000100c</td>
<td width="79%">French (Swiss)</td>
</tr>
<tr>
<td width="21%">00000c0c</td>
<td width="79%">French (Canadian)</td>
</tr>
<tr>
<td width="21%">00000407</td>
<td width="79%">German (Standard)</td>
</tr>
<tr>
<td width="21%">00000807</td>
<td width="79%">German (Swiss)</td>
</tr>
<tr>
<td width="21%">00000c07</td>
<td width="79%">German (Austrian)</td>
</tr>
<tr>
<td width="21%">00000408</td>
<td width="79%">Greek</td>
</tr>
<tr>
<td width="21%">0000040e</td>
<td width="79%">Hungarian</td>
</tr>
<tr>
<td width="21%">0000040f</td>
<td width="79%">Icelandic</td>
</tr>
<tr>
<td width="21%">00000410</td>
<td width="79%">Italian (Standard)</td>
</tr>
<tr>
<td width="21%">00000810</td>
<td width="79%">Italian (Swiss)</td>
</tr>
<tr>
<td width="21%">00000414</td>
<td width="79%">Norwegian (Bokmal)</td>
</tr>
<tr>
<td width="21%">00000814 </td>
<td width="79%">Norwegian (Nynorsk)</td>
</tr>
<tr>
<td width="21%">00000415 </td>
<td width="79%">Polish</td>
</tr>
<tr>
<td width="21%">00000816</td>
<td width="79%">Portuguese (Standard)</td>
</tr>
<tr>
<td width="21%">00000416</td>
<td width="79%">Portuguese (Brazilian)</td>
</tr>
<tr>
<td width="21%">00000418</td>
<td width="79%">Romanian</td>
</tr>
<tr>
<td width="21%">00000419</td>
<td width="79%">Russian</td>
</tr>
<tr>
<td width="21%">0000041b</td>
<td width="79%">Slovak</td>
</tr>
<tr>
<td width="21%">00000424</td>
<td width="79%">Slovenian</td>
</tr>
<tr>
<td width="21%">0000080a</td>
<td width="79%">Spanish (Mexican)</td>
</tr>
<tr>
<td width="21%">0000040a</td>
<td width="79%">Spanish (Traditional Sort)</td>
</tr>
<tr>
<td width="21%">00000c0a</td>
<td width="79%">Spanish (Modern Sort)</td>
</tr>
<tr>
<td width="21%">0000041d</td>
<td width="79%">Swedish</td>
</tr>
<tr>
<td width="21%">0000041f</td>
<td width="79%">Turkish</td>
</tr>
</tbody>
</table>
<p></center>
</p>
<p>Alla prossima</p>
]]></content:encoded>
			<wfw:commentRss>http://www.morzello.com/?feed=rss2&amp;p=181</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ternimal Server e l&#8217;errore: &#8220;il dominio specificato non esiste&#8230;&#8221;</title>
		<link>http://www.morzello.com/?p=178</link>
		<comments>http://www.morzello.com/?p=178#comments</comments>
		<pubDate>Wed, 10 Feb 2010 09:59:11 +0000</pubDate>
		<dc:creator>vittorio</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[domain controller]]></category>
		<category><![CDATA[regedit]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[remote desktop]]></category>
		<category><![CDATA[terminal server]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.morzello.com/?p=178</guid>
		<description><![CDATA[&#8220;The specified domain either does not exist or could not be contacted&#8221; è un errore che è possibile riscontrare quando si tenta un logon con utenza di dominio in terminal server (remote desktop). Capita quando ad esempio la macchina a cui si tenta di fare l&#8217;accesso è momentaneamente scollegata dal dominio ovvero quando il dominio [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-weight: bold;">&#8220;The specified domain either does not exist or could not be contacted&#8221;</span> è un errore che è possibile riscontrare quando si tenta un logon con utenza di dominio in terminal server (remote desktop). Capita quando ad esempio la macchina a cui si tenta di fare l&#8217;accesso è momentaneamente scollegata dal dominio ovvero quando il dominio non è raggiungibile.</p>
<p>Di solito questo problema viene risolto ripristinando la connessione con il domain controller. Ci sono dei casi in cui la connessione manca per motivi non legati alla funzionalità del server. Poniamo ad esempio il caso in cui volessimo accedere ad un portatile aziendale situato temporaneamente fuori dalla rete aziendale.</p>
<p>Per utilizzare le credenziali presenti sulla macchina evitando l&#8217;interruzione della connessione in caso di mancanza del domain controller è possibile mettere mano al file di registro con credenziali amministrative.</p>
<p>E&#8217; sufficiente creare un file di testo con estensione <span style="font-style: italic;">&#8220;.reg&#8221; </span>e inserire il seguente contenuto:</p>
<pre class="sourcecode">
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"IgnoreRegUserConfigErrors"=dword:00000001
</pre>
<p><br/><br />
Basta poi cliccare due volte sul file per inserire i dati nel registro di sistema.</p>
<p>Alla prossima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.morzello.com/?feed=rss2&amp;p=178</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>



