X den screen shot alma komut satırında

ubuntuda yada son kullanıcıda aslında print screen tuşu gayet güzel çalışmakda ama bir haftadır show slow u otomatik olarak çalıştırmaya çalışıyorum oda Xvfb açıp orda firefox çalıştırıyor. ama orayı görme şansım yok çünkü işlem serverda(ayrı bir makinede) gerçekleşiyor. ne iş dönüyor diye merak ediyorum bende. derken screen shot almayı söktüm.

xwd -display :1 -root -out image.xwd

bunla bir kaç screen shot aldığımda aslında arkada işlemin çalıştığını gördüm. xwd diye bir formatta daha görmemiştim 🙂 bende gimp le açıldı ama dosya boyutu kocaman 1024×768 de 3mb çıktı veriyor. sonunda kurcalanırken şu yolu daha sağlıklı buldum:


xwd -display :0 -root | convert xwd:- out.png

bu bulunulan foldera out.png çıkarıyor. displayi eğer 0 yaparsanız pc de o esnada kullandığım X den screen shot alıyor bilginize 🙂

google data center’ı

herşeyin aslında çok güçlü olmayan küçük webserverlarından oluştuğu ve bu serverların büyük büyük gemilerdeki gibi container larda tutulduğunu düşünmemiştim 🙂

ve suyla soğutma yapılıyor 🙂
sanki kocaman bir fabrika gibi. bundan sonra terminatörleri yapacaklar galba :p

“Google Provided Transportation Device” skutır demiyor ama o skutır değil 😀

age of empire seven linuxcüler

sıkıcı bir pazar günü napsam napsam derken ulan seneler oldu oyun oynamıom dedim linuxde ne var bakalım dedim ve megaglest ile tanıştım. 210mb bir setup ı indirip sistemde root olmama gerek kalmadan kuruldu. temiz iş. çalıştırınca debianda bi kaç lib bulamıom hatası verdi ama sonunda çalıştı. oldum olası real time strateji sevmişimdir. açtım bi iki el oynadım oyun tip olarak eski çağları yada fantastik 3. dünya hikayelerini andırıyor. yine bir sürü üniteler bir sürü hikaye. nedense bana age of empires ı andırdı. age of u özleyen varsa indirsin oynasın sıkıntısız çalışıyor grafiklerde 10 üzerinden 8 alır.

ssh brute force ataklarını engelleme yolu

aslında brute force engellenemez bir saldırı taktiğidir. saldırgan kişi servisin üstünde bütün kullanıcı adı ve şifreleri dener. madem bunu engelleyemiyoruz ne yaparız ömür boyu sürmesini sağlarız 🙂 nasılmı basit. her 3 hatada bir saldırganı on dakika boyunca banlarım bu sayede 100 şifre denemesi 5 saat yapar benim şifremi bulması tahminen 345352345 yıl sürücektir bu sayede brute force atağı başarılıda olsa ben göremicem 😀

debianda bu işi yapmak çok kolay fail2ban sağolsun.
1. adım
apt-get install fail2ban

eğer logların yerlerini değiştirmediyseniz bu adımda işlem tamamdır. ama logun yeri farklı veya uyarı maillerini kendi gmailinize göndermek istiyorsanız
2.adım
nano /etc/fail2ban/jail.conf
yapın bi turlayın dosyada pathleri ve mailinizi ayarlayabilirsiniz. test ettim debianımda çalışıyor. aslında evde hiç böyle birşeye ihtiyaç olmadı ama serverloft daki bir serverımın logunda değişik iplerden login olamayıp tekrar denemeler gördüm bu ipleri araştırdım fransa rusya çin vardı en garibime giden direk aynı data center da olan bir başka makineden gelendi 🙂 komşu komşunun külüne muhtaçtır eskide kalmış demek 🙂

aix sendmail logu açmak

bendeki aix de sendmail logu görünmüyordu ve sistem hotmaile mail atamıyor diye bir problem vardı ortada. bu yazıda sendmail logu nasıl açılırı yazam hotmail ayrı yazıda olsun 🙂

vi /etc/syslog.conf

syslog.conf un en sonunda mail.debug satırı comment out edin yada
mail.debug /var/log/maillog

ekleyin en sona. sonra
refresh -s syslogd

sonra emin değilim sendmail restart gerekiyormu ama yapmakdan zarar gelmedi 🙂
refresh -s sendmail

sonrasında less ile izleyebilirsiniz shift+f yaparsanız less sizi dosyanın en sonuna götürür bilginize 🙂 dosyada aldığım logda şöyleydi

Feb 10 19:07:05 SERVER_NAME mail:info sendmail[115142]: p1AH750h401592: to=, delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=124664, relay=mx3.hotmail.com. [65.54.188.94], dsn=4.0.0, stat
=Deferred: 421 RP-001 Unfortunately, some messages from SERVER_IP weren’t sent. Please try again…t per hour and per day. You can also refer to http://mail.live.com/mail/troubleshooting.aspx#errors.

hotmail beni spamcı sanıo 🙂

glassfish deploy war

iki gündür war deploy etmeye uraşıom. ve serverım bana default web module ettiğin şeyi re deploy edemen diyor.

(09:23:41 PM) mascix: hello
(09:24:11 PM) mascix: when I try to deploy my war from asadmin it gives WEB0145: Unable to deploy web module [vitrn.com] at root context of virtual server [server], because this virtual server declares a default-web-module
(09:24:52 PM) mascix: I am saerching how can I change default web module from console could not find any way and I am using glassfish 301
(09:31:15 PM) mascix: well I cleared the deafult web module from server and redeploy my war and it worked 🙂
(09:32:32 PM) jdlee: mascix: you can change that in the GF Admin Console by editing the Virtual Server
(09:33:48 PM) mascix: I was trying to make auto deploys for my code development
(09:34:21 PM) mascix: anyways in web xmöl and sun web xml I write context-root as / and redeployed it just like I said and its working 🙂

işin özü şu. defaut web module ettiğimiz uygulamayı redeploy edemiz ama web xml ve sun web xml de verdiğimiz context root ile uygulamamızı / da çalıştırabilioz. bu yazıdakine gerek kalmıyor bu durumda 🙂

ant build war glassfish

eclipse de veya netbeansde yazdık bi sürü hibernate ot bok derken en az war dosyamız oldu 20mb. şimdi her seferinde koca war dosyası upload edip onu servera deploy etmek ne zor olurdu dimi altı üstü bir kaç dosya değiştirdik diye koca 20mb upload peh.

ant burda bir numaralı araç. basit bir ant xml ile war dosyası oluşturabilir ve sorunu çözebiliriz yapmamız gereken linuxe ssh yapıp serverda derleyip ona deploy etmek. buyrun örnek build.xml

<?xml version=”1.0″ ?>

<project name=”vitrn.com” default=”war”>

<!– running ant with this is enough for eveyrthing dont forget to rearrange paths 😉

for server there must be glassfish libs in the clkasspath :ln -s /home/mascix/glassfishv3/glassfish/fomains/domain1/lib/

–>

<path id=”compile.classpath”>

<fileset dir=”WebContent/WEB-INF/lib”>

<include name=”*.jar” />

</fileset>

</path>

<target name=”init”>

<mkdir dir=”build/classes” />

<mkdir dir=”dist” />

<exec executable=”rm”>

<arg line=”lib” />

</exec>

<exec executable=”ln”>

<arg line=”-s /home/mascix/glassfishv3/glassfish/lib” />

</exec>

</target>

<target name=”compile” depends=”init”>

<copy todir=”build/classes/”>

<fileset dir=”src”>

<exclude name=”**/*.java” />

</fileset>

</copy>

<javac destdir=”build/classes” debug=”true” srcdir=”src”>

<classpath refid=”compile.classpath” />

<classpath>

<pathelement path=”${classpath}” />

<pathelement location=”lib/helper.jar” />

</classpath>

<classpath>

<pathelement path=”${classpath}” />

<fileset dir=”WebContent/WEB-INF/lib”>

<include name=”**/*.jar” />

</fileset>

<fileset dir=”lib”>

<include name=”**/*.jar” />

</fileset>

<pathelement location=”classes” />

</classpath>

</javac>

</target>

<target name=”war” depends=”compile”>

<war destfile=”dist/vitrn.com.war” webxml=”WebContent/WEB-INF/web.xml”>

<fileset dir=”WebContent” />

<lib dir=”WebContent/WEB-INF/lib” />

<classes dir=”build/classes” />

</war>

</target>

<target name=”clean”>

<delete dir=”dist” />

<delete dir=”build” />

</target>

<property name=”build.sysclasspath” value=”ignore” />

</project>

elbet işe yarar.

svn e ssh ile bağlanmak

uzun süredir svn kullanırım ama her seferinde apache mod svn falan gibi şeyler kurup http ile bağlanıyordum. aslında windowsda ilk svnimi kurmuştum sanırım ordan bir alışkanlıkı bu. neyse geçende okurken çok tatlı bişey öğrendim. aslında svn e ssh ilede bağlanılabiliyor. buyrun örnek:

svn co svn+ssh://sizinserver.com/usr/local/src/proje

tabiiki /usr/local/src/proje altında bi kere svnadmin create yapılmış olması gerek onun dışında bir farkı yok svn e ssh ile bağlanır gibi bağlanıp kodlarınızı commit ve update edebilersiniz. nays 🙂