Здравейте и добре дошли в #root.bg!
Тук може да намерите статии и уроци за linux, мрежи и тяхната защита, игри и забавление, както и хобита – ролери, дронове и много други.
Тук може да намерите статии и уроци за linux, мрежи и тяхната защита, игри и забавление, както и хобита – ролери, дронове и много други.
Николай Николов Работа, Howto bad word, body_checks, header_checks, postfix, spam 0
Добър ден.
Днес ще пиша за спам-а който ме тормози последно време, и за начина по който се справих с него.
Последно време съм нападнат от така нареченият умен спам. Добавят ми мейлите по разни мейл листи и ме спамят с какви ли не дивотии. Типичният пример – „Eat THESE Foods to Reverse Diabetes“ и разни подобни. Казвам че това е умен спам, тъй като се изпраща от мейл сървъри който имат SPF, обратен резолв и всичко друго което моят мейл сървър проверява при получен мейл.
Така наречения postfix bad word howto, или как научих postfix-a ми да следи за определени думи в мейлите и по този начин да реже писмата който съдържат тези думи.
Използвах body_checks и header_checks който са вградени функции на postfix.
Ето и конфигурация която ми:
в main.cf добавих следните редове:
header_checks = pcre:/etc/postfix/header_checks.pcre body_checks = regexp:/etc/postfix/body_checks
/etc/postfix/header_checks.pcre
съдържа следните редове:
/^Content-(Disposition|Type).*name\s*=\s*"?(.*(\.|=2E)( ade|adp|asp|bas|bat|chm|cmd|com|cpl|crt|dll|exe| hlp|ht[at]| inf|ins|isp|jse?|lnk|md[betw]|ms[cipt]|nws| \{[[:xdigit:]]{8}(?:-[[:xdigit:]]{4}){3}-[[:xdigit:]]{12}\}| ops|pcd|pif|prf|reg|sc[frt]|sh[bsm]|swf| vb[esx]?|vxd|ws[cfh]))(\?=)?"?\s*(;|$)/x REJECT Attachment name "$2" may not end with ".$4"
^-> Това е за прикачените файлове и разширението им.
Николай Николов Работа, Howto backup, bash, mongodb, script 0
Днес ми се наложи да напиша един прост mongodb бекъп скрипт, който да може да архивира актуален бекъп, така и да трие по-старите от 30 дни файлове. Ето и самият скрипт, може би ще бъде полезен на някой .. 🙂
#!/bin/bash cd /var/backups/mongodb/ && mongodump -o databasename mv /var/backups/mongodb/databasename /var/backups/mongodb/databasename.`date "+%Y-%m-%d-%H%M"` tar -zcvf /var/backups/mongodb/databasename.`date "+%Y-%m-%d-%H%M"`.tar.gz /var/backups/mongodb/databasename.`date "+%Y-%m-%d-%H%M"` rm -rf /var/backups/mongodb/databasename.`date "+%Y-%m-%d-%H%M"` echo "mongodb backup is completed" #find all files alder than 30 days , and remove find /var/backups/mongodb/databasename*.tar.gz -mtime +30 -exec rm {} \;
Предварително трябва да имаме създадена директория : /var/backups/mongodb/
databasename е името на базата на която ще правим бекъп
Триенето на стари файлове може да се регулира -mtime +30 значи файл по-стар от 30 дни (числото може да бъде сменено с каквото си искаме)
Накрая сложих скрипта в крон да се пуска всяка вечер и мисията е изпълнена 🙂
Това е..
Николай Николов Работа, Howto mysql, optimization, varnish, w3 total cache 0
Добар ден,
Днес ще пиша за един проблем който мъчи блога ми от доста време. Става дума за страниците в блога където има много снимки – когато се отворят за първи път (преди varnish-a да е направил кеширан вариянт на страница) се отваря за около 2 минути!! Това е просто меко казано нелепо и трябваше да го оправя!
Днес открих че проблема е от една заявка която прави w3-total-cache плугина когато се използва CDN. Ако спазваме внимателно указанията за инсталация на този плугин трябва да напишем следната заявка:
DROP TABLE IF EXISTS `wp2_w3tc_cdn_queue`; CREATE TABLE IF NOT EXISTS `wp2_w3tc_cdn_queue` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `local_path` varchar(500) NOT NULL DEFAULT '', `remote_path` varchar(500) NOT NULL DEFAULT '', `command` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '1 - Upload, 2 - Delete, 3 - Purge', `last_error` varchar(150) NOT NULL DEFAULT '', `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`), KEY `date` (`date`) ) ;
Ами хубаво ама не правете това! Днес открих че MySQL-a ми товареше на 160% CPU като отворя сайта на Ани и след като отворих mysql.log видях следното:
2057 Query SELECT remote_path FROM wp2_w3tc_cdn_queue WHERE remote_path = 'wp-includes/js/jquery/jquery.js' 2057 Query SELECT remote_path FROM wp2_w3tc_cdn_queue WHERE remote_path = 'wp-includes/js/jquery/jquery-migrate.min.js' 2057 Query SELECT remote_path FROM wp2_w3tc_cdn_queue WHERE remote_path = 'wp-includes/wlwmanifest.xml' 2057 Query SELECT remote_path FROM wp2_w3tc_cdn_queue WHERE remote_path = 'wp-includes/js/comment-reply.min.js' 2057 Query SELECT remote_path FROM wp2_w3tc_cdn_queue WHERE remote_path = 'wp-content/themes/postline/js/audio-player.js'
И ето защо страниците със снимките се отварят така мега бавно! Дропнах таблицата и си реших проблема завинаги!
MariaDB [jbblog]> DROP TABLE IF EXISTS `wp2_w3tc_cdn_queue`; Query OK, 0 rows affected (0.04 sec)
Николай Николов Работа, Howto history, linux, timestamp 0
history е команда при Linux която показва какво сме изпълнявали преди време в конзолата. Много е полезна и винаги ме е спасявала в определи моменти. Обаче по подразбиране history не показва дата и час когато бъде изпълнена:
Днес ми се наложи да видя кога съм инсталирал едно приложение и за целта направих следното нещо да накарам history да ми покаже дата и час :
alpha:~# date Sat Jun 21 15:02:52 EEST 2014 alpha:~# history |grep have 173 apt-get install haveged 373 ps aux|grep have 374 haveged --help 375 man haveged 509 ls -lah /usr/sbin/haveged 511 history |grep have
alpha:~# export HISTTIMEFORMAT="%F %T "
И ето и резултата:
alpha:~# history |grep have 173 2014-06-21 12:47:07 apt-get install haveged 373 2014-06-21 12:47:07 ps aux|grep have 374 2014-06-21 12:47:07 haveged --help 375 2014-06-21 12:47:07 man haveged 509 2014-06-21 15:02:50 ls -lah /usr/sbin/haveged 511 2014-06-21 15:02:54 history |grep have 513 2014-06-21 15:03:49 history |grep have
Много полезно! 🙂