Archive

Archive for the ‘Linux’ Category

Multi domain Apache config (sites-available/default/)

NameVirtualHost *
 
<VirtualHost SERVER_IP_ADDRESS_HERE_PLEASE:80>
    UseCanonicalName Off
    DocumentRoot /www
 
    RewriteEngine On
    RewriteMap  lowercase  int:tolower
 
    Options -Indexes
 
    RewriteRule ^(.+)  ${lowercase:%{SERVER_NAME}}$1  [C]
 
    RewriteRule ^([^\.\/]+\.co\.uk)/(.*) /www/$1/www/root/$2
    RewriteRule ^www\.([^\.\/]+\.co\.uk)/(.*) /www/$1/www/root/$2
 
    RewriteRule ^([^\.\/]+\.[^\.\/]+)/(.*) /www/$1/www/root/$2
    RewriteRule ^www\.([^\/]+)\.([^\.\/]+\.[^\.\/]+)/(.*) /www/$2/$1/root/$3
    RewriteRule ^([^\/]+)\.([^\.\/]+\.[^\.\/]+)/(.*) /www/$2/$1/root/$3
</VirtualHost>
 
 
 
<Directory /www>
        php_admin_flag safe_mode off
        php_value upload_max_filesize 10M
        php_value post_max_size 10M
	php_value memory_limit 35M
</Directory>
Categories: Apache, Linux Tags:

Как да изтрием файлове по-стари от Х дни през конзолата на Linux?

Това като цяло са елементарни неща, но понякога човек като зацикли не се сеща дори и за тях. Затова, ето един пост с цел да си напомням за вбъдеще и да го намирам лесно, когато ми потрябва.

find /full/path/to/files/ -mtime +5 -exec rm {} \;

+5 в случея означава, че ще изтрием всички файлове в посочената директория по-стари от 5 дни.

Как да сменим default editor-a в конзолата?

За nano:

export EDITOR=nano

За vim:

export EDITOR=vim
Categories: Debian, Linux Tags:

Как да накараме компютъра да ни снима… самичък, автоматично ?

Може би заглавието не е най-подходящото, но все пак…

Оставайки с малко свободно време, реших да се позабавлявам с камерата на компютъра си, но за съжаление след изморителният ден единственото, което ми хрумна е прекалено елементарно. Въпреки всички ще го споделя.

Идеята: Да се “самоснимам” на всеки час и преди да си тръгна, да видя през какви фази е преминал работният ми процес (ден). За момента на всички снимки изглеждам замислен или просто ме няма 🙂 (не, няма да ви дам линк! 🙂 )

0. Инсталираме streamer, ако все още липсва.

sudo apt-get install streamer

За начало, един малък bash скрипт, който да ни снима 🙂

#!/bin/bash
HOUR=`date +"%Y-%m-%d.%H.%M"
 
streamer -f jpeg -o /path/to/picture/folder/$HOUR.jpeg

Стъпка 2: Готово. Елементарно, нали?

От тук нататък, какво ще правите със снимките е изцяло ваш избор.
Това, което направих аз е да ги качвам на web server и от дам да ги гледам на slideshow. Просто за да не си липсвам 🙂

Ето и целият ми скрипт… скриптче:

#!/bin/bash
HOUR=`date +"%Y-%m-%d.%H.%M"`
 
streamer -f jpeg -o /path/to/picture/folder/$HOUR.jpeg
 
rsync -ave "ssh -i /path/to/ssh/key" /path/to/picture/folder/ user@domain.com:/domain.com/public_html/webshots/

За да го сложите в crontab, трябва да си направите задължително SSH key, с който да минава rsync-a без да ви иска парола за връзка с domain.com

Categories: Debian, How to ... ?, Linux Tags:

Uptime ?!

Харесва ли ви натоварването на машината? :–)

Categories: Debian, Linux, Всичко друго Tags:

Добавяне на header за Mandrill чрез postfix

За да се отчитат кликовете и отворените писма в системата на Mandrill, трябва да добавим специален header към всяко писмо. И тъй като нямах време да го правя за всеки отделен application на сървърите, а и нямаше нужда в моя случай, ето как става това:

Редактираме /etc/postfix/master.cf като под реда
smtp unix – – – – – smtp
добавяме: -o smtp_header_checks=regexp:/etc/postfix/mandrill_header

Създаваме файла /etc/postfix/mandrill_header със съдържание:

/^Subject: .*/ PREPEND X-MC-Track: opens, clicks

Последна стъпка – рестартираме postfix:

/etc/init.d/postfix restart
Categories: Debian, How to ... ?, Linux, postfix Tags:

Изпращане на писма през Mandrill чрез Postfix

След известно търсене на най-добрата 3rd part компания, през която да изпращам мейлите на 2 от сървърите ми, се спрях на Mandrill. Може би не е най-добрата, а може и да е, това ще видим в последствие.
Всеки може да се регистрира безплатно и да тества 🙂

Сега на върпоса.
Трябваше ми да изпращам мейлите без да променям всеки application на сървърите и да му пипам функцийте за изпращане на мейли. Най-лесният начин, за който се сетих, беше да инструктирам postfix да изпраща всеки изходящ мейл към сървъра на Mandrill. Как става това? Ето как:

Във файла (ако го няма го създаваме) /etc/postfix/sasl_passwd пишем:

[smtp.mandrillapp.com] YOUR_USERNAME:YOUR_API_KEY

И…

postmap /etc/postfix/sasl_passwd

Редактираме файла /etc/postfix/main.cf и добавяме тези редове най-долу:

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
 
relayhost = [smtp.mandrillapp.com

След като направим това, единственото, което ни остава е да рестартираме postfix и сме готови 🙂

/etc/init.d/postfix restart

За всеки случай можете да следите /var/log/syslog за евентуални грешки:

tail -n 20 -f /var/log/syslog
Categories: Debian, How to ... ?, Linux, postfix Tags:

Брой “кънекции” на IP

Как да намерим от кое IP колко connection-и имаме в момента:

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

Опит в реални условия:

root@popeye ~ # netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
      1 111.13.8.19
      1 176.8.242.234
      1 66.249.66.156
      1 66.249.66.22
      1 66.249.72.238
      1 86.13.124.242
      1 93.123.69.7
      1 94.175.113.39
      1 94.193.159.185
      2 86.8.238.10
      2 87.121.214.124
      2 90.195.21.66
      2 94.193.152.75
      2 94.73.35.88
      3 2.122.59.243
      3 46.208.162.134
      3 79.100.59.207
      3 92.14.138.87
      3 92.236.71.211
      3 92.40.253.7
      3 95.169.209.242
      4 78.90.211.49
      4 86.28.150.187
      5 123.126.68.32
      5 86.81.215.173
      6 46.10.82.69
      6 82.12.250.92
      7 2.28.89.144
      7 81.98.23.19
      7 86.148.168.216
      8 188.28.252.230
      8 86.21.216.192
      9 78.147.234.103
     10 92.41.251.197
     14 127.0.0.1
     15 86.25.213.226
     22 2.125.125.108
     24 93.96.33.84
    134 176.9.39.106
root@popeye ~ #
Categories: Debian, Linux, Quick Tips Tags:

Display open connections by port

Или как да видим на кой порт колко закачени конекции има в момента:

netstat -tuna | awk -F':+| +' 'NR>2{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

Пример в реални условия:

root@popeye ~ # netstat -tuna | awk -F':+| +' 'NR>2{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
      1 110
      1 21
      1 443
      3 22
      6 53
      8 11211
    130 9002
    196 80
root@popeye ~ #

Как да изкараме всички картинки от PDF файл?

Елементарно Уотсън! 🙂

За целта използваме командата “pdfimages“, но първо трябва да инсталираме това:

apt-get install poppler-utils

Нека нашият PDF файл се казва test.pdf. За да изкараме картинките от него, използваме следната команда:

pdfimages -j test.pdf img

Това ще извади всички картинки от PDF файла като .jpg с префикс “img”. Пример: img-001.jpg, img-002.jpg