Blog Archives

Finding a file containing a particular text string

To find a text within all files of a directory use the following command:

grep -H -r "needle" /hay/stack

Set date and time on a Linux command line

You can set date and time of a linux server with:

date +%Y%m%d -s "20131228"

which sets the date to the 28th of December in 2013.

date +%T -s "20:15:45"

which sets the time to a quarter past 8 PM (and 45 seconds).

If you set the system datetime, you can also set the hardware clock:

hwclock --systohc --localtime

Recursively delete .svn directories

rm -rf `find . -type d -name .svn`

Renew a self-signed certificate with Eisfair

Go to Service Administration->Certs Service->Manage certificates. The script provides a menu to select the certificate and the its operations. Choose the certificate (1), like webserver or mailserver. Choose option 11 to renew the certificate request. Follow the screen output. Select 12 to sign the request with the CA certificate. Choose option 14 to create a new certificate and to copy it on the right place. Restart your webserver or mailserver process (/etc/init.d/).

If you have one certificate for multiple namebased hosts on your webserver, you shouldn’t select option 12. Instead follow the instructions on this blog entry: .

Proximity

I use Proximity as Maven mirror. If you need a new repository to use the artifacts for your project, you have to change three XML files to add it, which is a not easy and every time you have to copy and paste some parts of the configuration and have to change them manually. Because I’m a lazy developer I have written a script to create the necessary XML tags. You can download it from the server. Check the path of the Proximity installation within the script, per default it is set to $CATALINA_HOME/webapps/proximity. The script contains only a basic logic, you can enhance it with more complex things. The new repository will be added to the “public” repository group, which is set as the mirror within the Maven configuration file.

Skype and video

I have a webcam from Logitech and I have tried to open a video connection with Skype on Suse 11.1. But I hadn’t have a video stream. Some investigations later I have found a solution on Ubuntu wiki:

lsusb
ID 046d:08d9 Logitech, Inc. QuickCam IM/Connect

I have installed the packages

zypper install libv4l1-0 libv4l2-0 libv4lconvert0

and have opened Skype with

env LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype

Now I have a video stream and I can see my mother-in-law 🙂

Tomcat-Apache connector

I have installed Tomcat 6 and Apache 2.0 to use some applications within Tomcat. To have access to the applications over ports 80/443 I have also installed the mod_jk connector. But I got error messages like

build_worker_map::jk_worker.c (236): creating worker ajp13
[Fri Mar 19 12:39:23 2010] [29970:16384] [debug]
wc_create_worker::jk_worker.c (141): about to create instance ajp13 of ajp13
[Fri Mar 19 12:39:23 2010] [29970:16384] [debug]
wc_create_worker::jk_worker.c (154): about to validate and init ajp13
[Fri Mar 19 12:39:23 2010] [29970:16384] [debug]
ajp_validate::jk_ajp_common.c (1806): worker ajp13 contact is
'localhost:8009'
[Fri Mar 19 12:39:23 2010] [29970:16384] [debug]
build_worker_map::jk_worker.c (248): removing old ajp13 worker
Found a wildchar match worker2 -> /hudson/*
[Fri Mar 19 12:39:34 2010] [29973:16384] [debug] jk_handler::mod_jk.c
(1839): Into handler jakarta-servlet worker=worker2 r->proxyreq=0
[Fri Mar 19 12:39:34 2010] [29973:16384] [debug]
wc_get_worker_for_name::jk_worker.c (111): did not find a worker worker2
[Fri Mar 19 12:39:34 2010] [29973:16384] [info] jk_handler::mod_jk.c
(1993): Could not find a worker for worker name=worker2

All the little things within the Apache configuration have been made, but my worker hasn’t been found.

LoadModule jk_module /usr/local/apache2/modules/mod_jk.so
JkWorkersFile /etc/apache2/workers.properties
JkMount /hudson/* worker2

Several hours later, I have found a similar error description on the internet (but no solution…). I wrote a short mail to Rainer Jung, one of the followers, and he said, that the connector will use a default ajp13 worker if it cannot find another one. This means, that the module cannot find my workers property file.

Hm, the file permissions were correct, the file was on the correct path. The Apache documentation gave me the right hint:

The directive JkWorkersFile must not be within a VirtualHost directive. I had configured a special vhost for the Tomcat access and moved all the configuration stuff into that directive. The problem has been solved by a simple move of the JkWorkersFile line out of the VirtualHost directive. Very simple, damn.

SSL certificates for namebased virtual hosts

I have read a post on Waffel’s Blog how you can setup a certificate for multiple namebased servers on Apache. It is simple to manage within Eisfair.

  • Choose “Service Administration” -> “Certs service” and select “Manage certificates”.
  • Now enter “1” for key type and choose your webserver.
  • Select “11” to create a new certificate request. The request will be stored to /usr/local/ssl/csr/apache.csr.
  • Open another terminal and switch to /usr/local/ssl
  • Create an extension file extension.txt using vi, as described in Waffel’s blog and enter your server names at the end.
  • Execute openssl x509 -req -days 365 -in apache.csr -signkey private/apache.key -out newcerts/apache.crt -extfile extension.txt -extensions mydomain_http
  • Select “14” (Manage certificates) to create a .pem file from the new certificate.
  • Use apache as SSL_CERT_NAME on the Apache configuration for every virtual server which you have included into extension.txt

Hibiscus and cyberJack

I have had problems with Hibiscus and a HBCI cyberJack card reader from ReinerSCT. The application has crashed every time I had synchronized more than one account. I’m using Fedora 10 on a 64bit system and it comes with some CTAPI drivers as RPM. But the driver version is 1.1, the current version from ReinerSCT is 3.3.5beta1. Simply remove the old driver RPMs with Yum, they are buggy!

I have tried to compile the source of the current drivers, but I have got a “Neither HAL nor USB1 found!. Please install at least either of them.”. You can install the hal-devel and the libusb-devel RPMs with Yum to solve that problem. After “make” and “make install” it is now possible to synchronize all bank accounts without any crashes 🙂