Kategorien
Debugging Deployment Linux MySQL Server 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
Kategorien
Debugging Linux PHP Server Shell

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.

Kategorien
Linux Postfix Server Shell

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.

Kategorien
Linux Server Shell

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
Kategorien
Deployment Linux PHP Server Shell

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
Kategorien
Linux Shell

file encoding mit iconv auf der console

iconv --from-code=ISO-8859-1 --to-code=UTF-8 file_to_convert.txt > file_converted.txt
Kategorien
Deployment Linux Server Shell

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
Kategorien
Deployment Linux Server Shell

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