Category Archives: sadmin

sadmin

Squirrelmail с проблем при кирилица

При отваряне или препращане на писма с кирилица понякога не се прави коректно от squirrelmail затова е необходимо да конвертираме всичко в utf8 и да го сетнем.
squirrelmail-cyrillic-problem

Ето го и решението:

cd /usr/share/squirrelmail_nuts;
find . -iname squirrelmail.po|grep bg
cd locale/bg_BG/LC_MESSAGES/;

iconv -f CP1251 -t UTF-8 squirrelmail.po > squirrelmail.utf-8.po;
sed 's/cp1251/UTF-8/' squirrelmail.utf-8.po > squirrelmail.po;
rm squirrelmail.utf-8.po;
msgfmt -o squirrelmail.mo squirrelmail.po;

cd /usr/share/squirrelmail_nuts;
find . -iname i18n.php

vim ./functions/i18n.php
$languages["bg_BG"]["NAME"] = 'Bulgarian';
$languages["bg_BG"]["CHARSET"] = 'utf-8';
$languages["bg_BG"]["LOCALE"] = 'bg_BG.UTF-8';
$languages["bg"]["ALIAS"] = 'bg_BG';

vim  locale/bg_BG/setup.php
$languages['bg_BG']['NAME']    = 'Bulgarian';
$languages['bg_BG']['CHARSET'] = 'utf-8';
$languages['bg_BG']['LOCALE']  = 'bg_BG.UTF-8';
$languages['bg']['ALIAS']      = 'bg_BG';

/etc/init.d/apache2 reload

thx to Hipo

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Windows tips (Дата на инсталиране на Windows и програми)

Определяне кога са инсталирани приложенията в Windows:

1. В регистри: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall

InstallDate
YYYYMMDD (eg 20090301 for here March 1, 2009)

2. Чрез Control Panel -> Programs and Features
Колоната "Installed on"

Определяне кога е инсталиран съответния Windows

1. В cmd се изпълнява: systeminfo|find /i "original"

2. В cmd: WMIC OS GET installdate

Резултат:
20131019011658
Извод: 2013(year) 10(month) 19(date) 01(hour) 16(minutes) 58(seconds)

3. В регистри:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate

Конвертира се в decimal, и примерно излиза: 1414160971
Това като се конвертира чрез онлайн приложението unix time conversion(http://www.onlineconversion.com/unix_time.htm) Или local излиза същата дата както през systeminfo

Как да се редактира дата на създаване, дата на редактиране на файл или папка под Windows:

Чрез Attribute Changer- http://www.petges.lu/home/

Кога е създадена папка или файл под Windows?
File Properties -> Created

Кога е инсталиран Linux?

ls -ld /var/log/installer
ls -ld /lost+found
Датите на двете папки са едни и същи и тези дати са всъщност датите на инсталиране

PS: Съдебна експертиза, Съдебни експертизи, експертиза, expertiza, xpertiza

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Cron не изпълнява своите задачи

Cron не се изпълнява своите задачи. Cron е пуснат като демон и работи, но не изпълнява задачите си 🙂

Всъщност проблема беше, че в един момент задачите в /etc/crontab не искаха да се изпълняват .
Пуснахме cron в режим "higher log level" от тук :
/etc/default/cron
EXTRA_OPTS="-L 2"

# service cron restart
Restarting periodic command scheduler: cron.

и видяхме следното нещо в /var/log/syslog:

tail -f /var/log/syslog|grep CRON

Feb 24 11:59:14 beta /usr/sbin/cron[16571]: (CRON) INFO (pidfile fd = 3)
Feb 24 11:59:14 beta /usr/sbin/cron[16572]: (CRON) STARTUP (fork ok)
Feb 24 11:59:14 beta cron[16572]: Error: bad minute; while reading /etc/crontab
Feb 24 11:59:14 beta /usr/sbin/cron[16572]: (*system*) ERROR (Syntax error, this crontab file will be ignored)
Feb 24 11:59:14 beta /usr/sbin/cron[16572]: (CRON) INFO (Skipping @reboot jobs --- not system startup)

Т.е. има синтактична грешка която пречи на cron да изпълни задачите си и понеже има много задачи там като разгледахме ред по ред видяхме, че на една от задачите наистина имаше грешка. Скед като се отстрани грешката се рестартира cron и готово 🙂

tail -f /var/log/syslog|grep CRON

Feb 24 12:00:11 beta /usr/sbin/cron[16708]: (CRON) INFO (pidfile fd = 3)
Feb 24 12:00:11 beta /usr/sbin/cron[16709]: (CRON) STARTUP (fork ok)
Feb 24 12:00:11 beta /usr/sbin/cron[16709]: (CRON) INFO (Skipping @reboot jobs --- not system startup)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Кодиране на кирилица за url

Идеята е, че имаме 200 url-та които искаме да кодираме с  php. Ето го решението(може да се направи от file,mysql или тук ако са малко директно в масив):

# cat cyr_url_encoder.php

<?php
$links=array(
'http://www.example.bg/',
'http://www.example.bg/cart',
'http://www.example.bg/adds/Камиони',
'http://www.example.bg/listing/931/Двигател',
'http://www.example.bg/contact',
'http://www.example.bg/parts/Бусове',
'http://www.example.bg/статия/Авточасти%20За%20Hyundai',
'http://www.example.bg/listing/935/Радиатор%20Парно',
'http://www.example.bg/listing/891/Шарнир%20Долен',
'http://www.example.bg/listing/854/Глава'
);//End of $links=array(


$myfile = fopen("decoded.txt", "w") or die("Unable to open file!");
foreach ($links as $link)
{
echo "[1]Orig: $link\n";
$link=urldecode($link);
echo "[2]Decoded: $link\n";
$info=parse_url($link);
$scheme=$info['scheme'];
$host=$info['host'];
$path=$info['path'];
$path=urlencode($path);
$urlencode="$scheme://$host$path";
$urlencode=str_replace("%2F","/",$urlencode);
echo "[3]Encoded: $urlencode\n\n";
fwrite($myfile, "$urlencode\n");
};

Резултата:

# php cyr_url_encoder.php

[1]Orig: http://www.example.bg/
[2]Decoded: http://www.example.bg/
[3]Encoded: http://www.example.bg/

[1]Orig: http://www.example.bg/cart
[2]Decoded: http://www.example.bg/cart
[3]Encoded: http://www.example.bg/cart

[1]Orig: http://www.example.bg/adds/Камиони
[2]Decoded: http://www.example.bg/adds/Камиони
[3]Encoded: http://www.example.bg/adds/%D0%9A%D0%B0%D0%BC%D0%B8%D0%BE%D0%BD%D0%B8

[1]Orig: http://www.example.bg/listing/931/Двигател
[2]Decoded: http://www.example.bg/listing/931/Двигател
[3]Encoded: http://www.example.bg/listing/931/%D0%94%D0%B2%D0%B8%D0%B3%D0%B0%D1%82%D0%B5%D0%BB

[1]Orig: http://www.example.bg/contact
[2]Decoded: http://www.example.bg/contact
[3]Encoded: http://www.example.bg/contact

[1]Orig: http://www.example.bg/parts/Бусове
[2]Decoded: http://www.example.bg/parts/Бусове
[3]Encoded: http://www.example.bg/parts/%D0%91%D1%83%D1%81%D0%BE%D0%B2%D0%B5

[1]Orig: http://www.example.bg/статия/Авточасти%20За%20Hyundai
[2]Decoded: http://www.example.bg/статия/Авточасти За Hyundai
[3]Encoded: http://www.example.bg/%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%8F/%D0%90%D0%B2%D1%82%D0%BE%D1%87%D0%B0%D1%81%D1%82%D0%B8+%D0%97%D0%B0+Hyundai

[1]Orig: http://www.example.bg/listing/935/Радиатор%20Парно
[2]Decoded: http://www.example.bg/listing/935/Радиатор Парно
[3]Encoded: http://www.example.bg/listing/935/%D0%A0%D0%B0%D0%B4%D0%B8%D0%B0%D1%82%D0%BE%D1%80+%D0%9F%D0%B0%D1%80%D0%BD%D0%BE

[1]Orig: http://www.example.bg/listing/891/Шарнир%20Долен
[2]Decoded: http://www.example.bg/listing/891/Шарнир Долен
[3]Encoded: http://www.example.bg/listing/891/%D0%A8%D0%B0%D1%80%D0%BD%D0%B8%D1%80+%D0%94%D0%BE%D0%BB%D0%B5%D0%BD

[1]Orig: http://www.example.bg/listing/854/Глава
[2]Decoded: http://www.example.bg/listing/854/Глава
[3]Encoded: http://www.example.bg/listing/854/%D0%93%D0%BB%D0%B0%D0%B2%D0%B0

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Проблем със сайт преминал от http към https

Проблема е, че сайта се беше счупил непосредствено след редиректа към https.

Ето го решението:

Заменяме js и css да не се зареждат през http, а през https, т.е.:

Преди:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

Сега:
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false"></script>

Преди:
<link rel='stylesheet' type='text/css' href='http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/themes/base/jquery-ui.css' />

Сега:
<link rel='stylesheet' type='text/css' href='https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/themes/base/jquery-ui.css' />

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Пренасочване на WordPress http към https

В преден пост описах как става пренасочването на целия сайт от протокола http към https. Понеже имаше един случай и това на WordPress "не работи" ето го решението как да се подреди .htaccess :

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>
VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Проверка за redirect, чрез curl

Идеята е, че не искам да ползвам web-sniffer(много време отнема да въвежам captcha и т.н.) и затова използвам следния command line метод:
$ curl -s -o /dev/null -I -w "HTTP_CODE:
%{http_code}\nREDIRECT_URL: %{redirect_url}\n"  http://domain.bg/
HTTP_CODE: 301
REDIRECT_URL: https://domain.bg/

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Експорт на всички снимки от docx под linux/terminal

Идеята е да не се занимаваме с глупости, а с един ред да изведем всички снимки от съответния Word document (docx). Това работи при docx. Ако документа е doc трябва да се конвертира в docx и тогава да се експортне по този метод:

unzip novini.docx

Archive:  novini.docx
inflating: _rels/.rels
inflating: word/fontTable.xml
inflating: word/_rels/document.xml.rels
inflating: word/settings.xml

extracting: word/media/image19.jpeg
extracting: word/media/image32.jpeg

extracting: word/media/image52.jpeg
extracting: word/media/image39.jpeg

inflating: word/styles.xml
inflating: docProps/app.xml
inflating: docProps/core.xml
inflating: [Content_Types].xml
inflating: word/document.xml

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Postifx: Проблем със Courier IMAP Error (FAM/Gamin library)

Courier IMAP Error: check for configuration errors with the FAM Gamin libraryПри свързване на мейл клиент Thunderbird и Outlook с мейл сървъра ми показваше следната грешка:

Filesystem notification initialization error — contact your mail administrator (check for configuration errors with the FAM/Gamin library)

Проблема е, че няма libgamin и трябва да се инсталира вместо libfam. Мейл сървъра е postfix

Решението е:

1. Инсталиране на gamin

apt-get update && apt-get -y install gamin

The following extra packages will be installed:
  libgamin0
The following packages will be REMOVED:
  libfam0
The following NEW packages will be installed:
  gamin libgamin0

Removing libfam0 …

Unpacking gamin (from …/gamin_0.1.10-2+b1_i386.deb) …
Setting up gamin (0.1.10-2+b1) …
Setting up libgamin0 (0.1.10-2+b1) …

2. Рестартиране на courier

find /etc/init.d/ | grep courier | while read line; do $line restart; done

Stopping Courier POP3-SSL server: pop3d-ssl.
Starting Courier POP3-SSL server: pop3d-ssl.
Stopping Courier POP3 server: pop3d.
Starting Courier POP3 server: pop3d.
Stopping Courier authentication services: authdaemond.
Starting Courier authentication services: authdaemond.
Stopping Courier IMAP-SSL server: imapd-ssl.
Starting Courier IMAP-SSL server: imapd-ssl.
Stopping Courier IMAP server: imapd.
Starting Courier IMAP server: imapd.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)