30 14,23 * * 1-5 /usr/bin/wget --post-data "param1=pippo¶m2=pluto¶m3=paperino" http://www.nomesito.dominio/nomefile &1>/dev/null
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¶m2=pluto¶m3=paperino" http://www.nomesito.dominio/nomefile &1>/dev/null
30 14,23 * * 1-5 /usr/bin/wget --post-data "param1=pippo¶m2=pluto¶m3=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!!!
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));
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>
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 *>
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
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)
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
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 /*
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
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
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
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/
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
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
per modificare gli shared buffers sotto linux:
seguire queste indicazioni
- Start at 4MB (512) for a workstation
- Medium size data set and 256-512MB available RAM: 16-32MB (2048-4096)
- Large dataset and lots of available RAM (1-4GB): 64-256MB (8192-32768)
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
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)
l'attributo:
<set name="LogTimeZone">CET</set>
può essere CET (europa è il nostro)
linux - disk speed check
dd if=/dev/zero of=/tmp/output.img bs=8k count=256k
rm /tmp/output.img
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
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
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/
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"
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
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
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
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
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
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>'
pkill -f 'postgres: postgres <database>'
Perchè questo blog?
diciamo che è un insieme di appunti di tecnicume
Iscriviti a:
Post (Atom)