Tag Archive Shell

Search / Replace with SED without escaping slashes

As you might know, you can use any delimiter to use the search/replace feature of sed to avoid extreme escaping of slashes.

~/ sed -r -e 's@http://google.com/@http://example.com/@g' < input.file > output.file

Tags, , , , , , , , , ,

wo ist das php log auf diesem Server

wer sich das ab und an fragt, kann mit

php -i | grep log

angezeigt bekommen, wo die aktuelle php installation ihre logs hinschreibt.

Tags, , , , ,

postfix und domain mail forwarding

um mails an domains deines server zu echten mail adressen weiterzuleiten, geht mit postfix folgendes:


# öffne /etc/postfix/main.cf 
inet_interfaces = all

# am ende einfügen
virtual_alias_domains = hash:/etc/postfix/virtual_domains
virtual_alias_maps = hash:/etc/postfix/virtual

# in der  /etc/postfix/virtual_domains die domains eintragen
mydomain.com OK
myotherdomain.com OK

# in der  /etc/postfix/virtual die weiterleitungen eintragen (2ter eintrag ist ein catchall)
mail@mydomain.com myrealaddress@gmail.com, myotherrealaddress@gmail.com
@myotherdomain.com myrealaddress@gmail.com

# adde neues mapping zur postmap (wenn noch nicht vorhanden)
$ postmap /etc/postfix/virtual_domains
$ postmap /etc/postfix/virtual

# reload / restart postfix config
$ service postfix reload

beachte das beim testen dieser mails bspw. bei gmail eine loop detection zum einsatz kommt, die verhindert das du mails weitergeleitet bekommst die du mit dem selben gmail account absendest. gmail alias addressen als absender hingegen funktionieren.

Tags, , , , , , , ,

linux (ubuntu) user add mit home und shell

um einen neuen user mit eigenem /home/user verzeichnis und shell zu erzeugen geht folgendes auf der console

~$ useradd -s /bin/bash -m mynewuser

Tags, , , , , ,

shell do something in a while

#!/bin/bash

DONE=0
while [ $DONE -eq 0 ] 
do
    #do something and return something else than 0 when you want to exit this circle
    DONE=$?
done

Tags, , , , ,

file encoding mit iconv auf der console

iconv --from-code=ISO-8859-1 --to-code=UTF-8 file_to_convert.txt > file_converted.txt

Tags, , , , ,

mit shell script und diff dateien prüfen

Um durch etwaige Cronjobs eine Prüfung von 2 Dateien und darauf folgende Aktionen zu erzeugen, kann ein shell script Verwendung finden.

#!/bin/bash

SOURCE=/mount/data/new_file.txt
TARGET=/srv/www/vhosts/www/app/config/old_file.txt

diff -i -b -B -q ${SOURCE} ${TARGET}

if [ ! $? -eq 0 ]
then
    echo "new file is different from old one - copy new one to old"
    cp ${SOURCE} ${TARGET}
else
    echo "no difference between files - nothing to do"
fi

Tags, , , , , ,

Shell Scripting Guide

Hier findet Ihr den Shell Scripting Guide:

freeos.com/guides/lsst/

Dann kann man beispielsweise so kleine Helferlein zum Löschen von Logs und Caches wie diesen hier basteln:

#!/bin/bash
cd `dirname $0` # go to scripts dir
cd .. # step ahead
arr[0]='Application1/app/cache/*'
arr[1]='Application1/var/cache/*'
arr[2]='Application2/application/cache/*'
arr[3]='Application2/application/logs/*'
arr[4]='Application2/pub/tmp/*'
arr[5]='Application3/application/cache/*'
arr[6]='Application3/application/logs/*'
arr[7]='Application3/pub/tmp/*'

i=0
while [ $i -lt ${#arr[@]} ]
do

rm -rf ${arr[$i]}
echo "${arr[$i]} deleted"

(( i=$i+1 ))
done

Tags, , , , , , ,