giovedì 16 dicembre 2010

Wget in Crontab con parametri

Come eseguire un wget con parametri all'interno del crontab di linux


30 14,23 * * 1-5  /usr/bin/wget --post-data "param1=pippo&param2=pluto&param3=paperino" http://www.nomesito.dominio/nomefile &1>/dev/null

venerdì 3 dicembre 2010

Linux HostName

si, l'host name della macchina è orrendo.

modificarlo da /etc/hostname

ricordarsi di aggiungerlo anche a /etc/hosts
127.0.0.1 <nome_inserito>

altrimenti apache e jetty danno in testa!!!

Java e NFS

da quello che trovo in rente java da un file system di lunix non riesce ad andare a scrivere con le procedure standard sue di java ( classe io.File quindi copy e rename e delete)  su file system di tipo NFS. Fortunatamente le commons.io di apache funzionano!!!!

org.apache.commons.io.FileUtils.copyFile(new File(fileStart),new File(fileDest));

mercoledì 17 novembre 2010

jetty - link simbolici

problemi con i link simbolici? per jetty bisogna abilitarli, sono disabilitati per motivi di sicurezza:

per abilitarli:

1 andare in <jett.home>/etc/webdefault.xml


<servlet>
...
    <init-param>
      <param-name>aliases</param-name>          
      <param-value>true</param-value>
    </init-param>
...
</servlet>

e verificare per tutti context: /<jetty.home>/etc/contexts/*

 <Set name="defaultsDescriptor"><SystemProperty name="jetty.home" default="."/>/etc/webdefault.xml</Set>

martedì 16 novembre 2010

Apache proxy dei file statici

per eseguire un proxy le risorse statiche servendole direttamente da apache.

ProxyPass /static/ !
ricordare di aggiungere il DocumentRoot altrimenti non sa dove prenderli

es:

<VirtualHost *>
     DocumentRoot /usr/local/customers/<nomesito>/

    ServerName www.<nomesito>.it

    ServerAlias noemsi.it

        RewriteEngine On
        RewriteCond %{HTTP_HOST} !www.<nomesito>.it
        RewriteRule ^(.*)$ http://www.<nomesito>.it$1 [R=301,L]

        <Proxy *>
        Order deny,allow
        Allow from all
        </Proxy>

        ProxyPreserveHost On
        ProxyPass /static !
        ProxyPass / http://www.<nomesitointerno>:8080/
        ProxyPassReverse / http://www.<nomesitointerno>.it:8080/


        ErrorLog /usr/local/customers/logs/emeroteca_error_logs
        CustomLog /usr/local/customers/logs/emeroteca_access_logs combined


</VirtualHost>

giovedì 4 novembre 2010

postgresql : database and table size via sql

- questa query può essere utile per eseguire un monitor dello spazio su disco dei db/tabelle.

psql

postgres=# select * from pg_size_pretty(pg_database_size('nomedeldb'));


pg_size_pretty
----------------
1345 MB
(1 row)


size delle tabelle:
SELECT nspname || '.' || relname AS "relation", pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size" FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) WHERE nspname NOT IN ('pg_catalog', 'information_schema') AND C.relkind <> 'i' AND nspname !~ '^pg_toast' ORDER BY pg_total_relation_size(C.oid) DESC;
SELECT relname, (relpages * 8) / 1024 AS size_mb FROM pg_class ORDER BY relpages DESC;

postgres : performace query

su una tabella con circa 94000 righe


EXPLAIN analyze select max(tnode_id) from tnes2.tnode;
Total runtime: 0.071 ms


EXPLAIN analyze select tnode_id from tnes2.tnode order by tnode_id desc limit 1;
Total runtime: 0.053 ms

mercoledì 3 novembre 2010

Linux - problemi con la data dei file

alle volte la data dei file non risulta giusta per qualche motivo del tipo 01-01-1970 o qualcosa del genere.

usare il touch è la cosa migliore... ma per usarlo a cascata?

touch */*/*/*/*/*

eseguire il comando scalando gli /*

mercoledì 27 ottobre 2010

jetty - enable on localhost

/etc/default/jetty.conf

JETTY_HOST=0.0.0.0

ubuntu 10.4 - webmin

wget http://downloads.sourceforge.net/project/webadmin/webmin/1.520/webmin_1.520_all.deb

dpkg -i webmin_1.520_all.deb

apt-get install libapt-pkg-perl libnet-ssleay-perl libauthen-pam-perl libio-pty-perl apt-show-versions

ubuntu - ufw

//ssh
ufw allow from any|<ip> to any port 22

//http
ufw allow from any to any port 80

//webmin
ufw allow from any to any port 10000

//ftp
ufw allow from any to any port 21
ufw allow proto tcp from any to any port 12122:12199

//postgres in esterno
ufw allow from 192.168.157.61 to 192.168.157.62 port 5432
ufw allow from 192.168.157.62 to 192.168.157.61 port 5432

ufw logging on
ufw enable

martedì 26 ottobre 2010

Apache performance - ab

utility per eseguire i check su apache

ab -c 100 -n 1000 http://www.nomedelsito.it/

postgres : performace

per la versione 8.4

modificiare /etc/postgres/xx/main/postgresql.conf


shared_buffers = 768MB  #questo parametro deve essere settato con attenzione
max_prepared_transactions = 768
work_mem = 12MB

fsync = on
wal_buffers = 512kB

enable_seqscan = off 

geqo_threshold = 3

per modificare gli shared buffers sotto linux:

seguire queste indicazioni


joe /etc/sysctl.conf

kernel.shmmax = 671088640
kernel.shmall = 671088640

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216


poi reboot

ubuntu 10.4 - settare il locale giusto

per i problemi con il locale


il comando locale vi restituisce cose oscene... vi consiglio:

apt-get install language-support-en
apt-get install language-support-it
update-locale LANG=it_IT.UTF-8
reboot

Jetty - set log time zone

nei file /jetty/etc/contetxt/noemsito.xml

l'attributo:

<set name="LogTimeZone">CET</set>


può essere CET (europa è il nostro)


linux - set time zone

dpkg-reconfigure tzdata

linux - disk speed check

dd if=/dev/zero of=/tmp/output.img bs=8k count=256k
rm /tmp/output.img

lunedì 25 ottobre 2010

joe togliere i backup file ~

sono fastidiosi quei file di backup che fa joe con la ~ davanti

editare
/etc/joe/joe.rc

togliere lo spazio davanti alla riga:

-nobackups      If you don't want backup files to be created

postgresql : connection from java app

modificare le seguenti configurazione per accedere da un'altra macchina con una app:

postgres.conf

# - Connection Settings -

listen_addresses = '*'

pg_hba.conf

host all all 0.0.0.0 0.0.0.0 trust

Jetty - Lib java for jsp e mailing

ecco l'elenco delle lib che uso per settare il funzionamento delle jsp:

jasper-el.jar jasper.jar jasper-jdt.jar jetty-ajp-6.1.22.jar jetty-naming-6.1.22.jar jetty-setuid-6.1.22.jar jsp-api-2.1.jar tomcat-juli.jar

da inserire nella cartella jetty-home/lib/

giovedì 21 ottobre 2010

Jetty - OutOfMemoryError: PermGen space #2

alla fine abbiamo risolto così:

file /etc/default/jetty

JAVA_OPTIONS="-Xmx1280M -Djava.awt.headless=true -XX:+UseParallelGC -XX:-DisableExplicitGC -XX:PermSize=128M -XX:MaxPermSize=256M"

mercoledì 20 ottobre 2010

Jetty - OutOfMemoryError: PermGen space

il problema, sa come leggo nel web, che lo spazio di memoria dedicato al caricmamento dei vari jar nelle singole webapps non viene gestito da un garbage collector. Ecco come ho tentato di risolvere il problema:

1 spostare le lib in comune nella jetty.home/lib/ext/nomeapp_che_decidi_tu/

2 definire il permgen space e attivare il garbage collector per quell'area di memoria modificando il file /etc/default/jetty elle Java Options aggiungendo :

-XX:+CMSPermGenSweepingEnabled : this setting enables garbage collection in the permgenspace
-XX:+CMSClassUnloadingEnabled : allows the garbage collector to remove even classes from the memory

martedì 19 ottobre 2010

Java RestClient anche per android

ecco un como Client Rest per java prelevato nel web e opportunamente modificato per le mie esigenze, ottimo anche per android

Script utili per la bash

il file si chiama profile.utils e va messo nella /usr/local/etc/ da aggiungere a /etc/profile/

il file contiene script utili di alias e altro

postgresql : dump and restore

backup: pg_dump nomedb > nomefile.sql

restore: psql nome_nuovo_db < nomefile.sql &>err

tail -f err

Apache + Jetty su Ubuntu

1 scaricare apt-get install jetty

2 i file si trovano sotto /usr/share/jetty

3 configurare jetty sulla porta 8080 e abilitare dal suo file di configurazione /etc/init.d/default

4 configurare apache in modo che vada in proxy


<VirtualHost *>
        ServerName www.nomesito.it
        ServerAlias nomesito.it

        RewriteEngine On
        RewriteCond %{HTTP_HOST} !www.nomesito.it
        RewriteRule ^(.*)$ http://www.nomesito.it$1 [R=301,L]

        <Proxy *>
        Order deny,allow
        Allow from all
        </Proxy>

        ProxyPreserveHost On
        ProxyPass / http://www.nomesito.it:8080/
        ProxyPassReverse / http://www.nomesito.it:8080/

        ErrorLog /usr/local/customers/logs/nomesito_error_logs
        CustomLog /usr/local/customers/logs/nomesito_access_logs combined

</VirtualHost>



5 configurare jetty sotto /usr/share/jetty/etc/context/nomesito.xml


    <Configure class="org.mortbay.jetty.webapp.WebAppContext">

         <Call class="org.mortbay.log.Log" name="debug"><Arg>Configure  Sito</Arg></Call>
         <Set name="resourceBase">/usr/local/customers/nomesito/</Set>
         <Set name="contextPath">/</Set>
         <Set name="virtualHosts">
              <Array type="java.lang.String">
                   <Item>www.nomesito.it</Item>
               </Array>
          </Set>


          <Call name="addHandler">
              <Arg>
                 <New class="org.mortbay.jetty.handler.RequestLogHandler">
                  <Set name="requestLog">
                     <New id="RequestLogImpl" class="org.mortbay.jetty.NCSARequestLog">
                      <Arg><SystemProperty  name="jetty.logs" default="./logs"/>/yyyy_mm_dd.nomesito.request.log</Arg>
                           <Set name="retainDays">90</Set>
                           <Set name="append">true</Set>
                           <Set name="extended">false</Set>
                           <Set name="LogTimeZone">GMT</Set>
                     </New>
                 </Set>
              </New>
           </Arg>
       </Call>

   </Configure>

6 configurare il dns della macchina che punti al dominio interno 127.0.0.1 www.nomesito.it sul file /etc/hosts

7 service jetty start && service jetty stop

postgresql : create database UTF8

con la versione 8.4 tutto diventa più difficile con l'encoding.

psql
create database "nome del db" encoding 'utf8' TEMPLATE template0

postgresql : database removal failed

problemi ad eseguire un dropdb quando il db è in uso:


pkill -f 'postgres: postgres <database>'

Perchè questo blog?

diciamo che è un insieme di appunti di tecnicume