Category Archives: sadmin

sadmin

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)

Windows 7 share на linux

Идеята е под Windows 7 да се сподели директория която да се ползва от linux:

regedit
1. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa => ‘everyoneincludesanonymous’ -- 1
2. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa => ‘NoLmHash’ -- 0
3. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters => ‘restrictnullsessaccess’ -- 0

windows-7-share-linux

2

 

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Пренасочване от http към https (.htaccess)

Идеята е също да пренасочи и домейна(понеже преди така е бил така и трябва да остане-водеща версия с www, t.e. www.domain.com)

cat .htaccess

RewriteEngine On

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

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)