Category Archives: sadmin

sadmin

Монтиране на linux drive ( extfs) ext3/4 под Windows

Идеята е, че имаме Windows и Linux на една и съща система. Идеята е като се работи под Windows да може да се ползва и дяла на GNU/Linux. За целта трябва да монтираме линукс партишъна под windows.

Препоръчвам две приложения за монтиране на GNU/Linux партишън под Windows:

1. Ext2explore -- Portable е

Ext2explore

 

2. Paragon ExtFS

paragon-extfs

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

Grub 2 -- Коя система да се зарежда по подразбиране

Целата тук е да се направи Windows 7 да се зарежда по подразбиране.
Как да се разбере какъв е номера на Windows 7 ?

cat /boot/grub/grub.cfg |grep '^menuentry'|awk -F "'" '{print $2}'|grep -v 'recovery'|sort|uniq

Linux Mint 17 MATE 64-bit, 3.11.0-26-generic (/dev/sda4)
Linux Mint 17 MATE 64-bit, 3.13.0-34-generic (/dev/sda4)
Linux Mint 17 MATE 64-bit, 3.5.0-17-generic (/dev/sda4)
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
Windows 7 (loader) (on /dev/sda1)

Като се смята от "0" то следва, че "Windows 7 " е номер 5

vim /etc/default/grub


GRUB_DEFAULT=5

update-grub2

Generating grub configuration file …
Found linux image: /boot/vmlinuz-3.13.0-34-generic
Found initrd image: /boot/initrd.img-3.13.0-34-generic
Found linux image: /boot/vmlinuz-3.11.0-26-generic
Found initrd image: /boot/initrd.img-3.11.0-26-generic
Found linux image: /boot/vmlinuz-3.5.0-17-generic
Found initrd image: /boot/initrd.img-3.5.0-17-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done

reboot

Готово :)

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

Инсталиране на grub след инсталиране на Windows

Проблема е, че след като беше инсталиран Windows на двуоперационна система (т.е. GNU/Linux + Windows), windows премахва съществуващият grub. За целта ще го инсталираме на ново и всичко ще се оправи :)

Зареждане на някаква Live дистрибуция

с fdisk се вижда какви дялове има и какво има на тях:

fdisk -l

Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xabababab

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   204802047   102297600    7  HPFS/NTFS/exFAT
/dev/sda3       204802048   208996351     2097152    6  FAT16
/dev/sda4       208996352  1465145343   628074496   83  Linux
За да се инсталира grub се изпълнява следното:

mount /dev/sda4 /mnt/
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
chroot  /mnt/
grub-install /dev/sda

За да не се случват тези грешки се изпълняват инструкциите по- горе :)

грешка 1: grub-probe: error: failed to get canonical path of /cow.

грешка 2: /usr/sbin/grub-probe: error: cannot find a device for / (is /dev mounted?).

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

Sublime text -- инсталиране и кракване под Линукс

Инсталиране на sublime text 3065

apt-get update && apt-get install sublime-text

Кракване на sublime text 3065

1. изтегляне на крак:  Линк 1 или Линк 2

След като се изтегли крака както при windows ките програми се заменя оригиналния изпълним файл ( sublime_text )
На тази дистрибуция се намира тук: /opt/sublime_text/sublime_text

Архивираме файла
mv /opt/sublime_text/sublime_text /opt/sublime_text/sublime_text.bak

Копираме крака
cp "sublime_text crack linux 64 build 3065" /opt/sublime_text/sublime_text

Правим го изпълним
chmod +x /opt/sublime_text/sublime_text;

Изпълняваме го и ето кракнат е :)

sublime_text_cracked

 

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

замяна на текст във всички файлове(рекурсивно)

Искам текста "Twenty Thirteen" да го заменя с текста "Distance Running" но във всички файлове в тази директория както и файловете в под директориите и т.н. Ето как става с един ред ;)

find . -type f -print0 | xargs -0 sed -i 's/Twenty Thirteen/Distance Running/g'

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

Копиране на таблица и нейното съдържание в MySQL

Идеята е таблицата "articles" да бъде копирана като "articles_bg" + съдържанието в таблицата "articles":

Ето го и сложното решение от две заявки:

CREATE TABLE articles_bg LIKE articles; INSERT articles_bg SELECT * FROM articles;

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

Как да разархивираме ZIP файл разбит на няколко части под Линукс

Имаме архивирана папка "site" разбита на 2 части от по 15 MB т.е. "site.z01" и "site.zip"

Когато опитаме обаче:

unzip site.z*;

Archive:  site.z01
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of site.z01 or
        site.z01.zip, and cannot find site.z01.ZIP, period.

За да се получи правим следното :) :

cat site.z* > combined.zip && unzip combined.zip;

Това е :)

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

Postfix + SPF Policy сървър (Debian)

apt-get update && apt-get install postfix-policyd-spf-perl -y

vim /etc/postfix/master.cf


policy-spf  unix  --       n       n       --       --       spawn
user=nobody argv=/usr/bin/perl /usr/sbin/postfix-policyd-spf-perl
vim /etc/postfix/main.cf

smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,check_policy_service unix:private/policy-spf

Важно: check_policy_service да се намира непосредствено след permit_mynetworks

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

Prestashop- Order | Fatal error: Allowed memory size of XX bytes exhausted

prestashopСистемата е prestashop и проблема е, че когато се направи поръчка (order) излиза бял екран (blank page). След debug(показване на грешките) се видя следното:


Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 32 bytes) in /home/arogans/public_html/classes/CartRule.php on line 263

Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 89 bytes) in /home/arogans/public_html/classes/db/DbPDO.php on line 101

Проблема очевидно е, че се ползва повече memory_limit от колкото е позволено. В този момент е позволено да се ползва 512 MB което не е никак малко.

Разгледах за решения от други колеги, но решението беше да се увеличи на повече. Пример: Имаме разрешен 128 MB memory_limit и за да решим проблема трябва да го увеличим на 256MB . До кога с това "решение" … ? Както и да е за мен това не е решение, а по- скоро задълбочаване на проблема.

Както и да е понеже не съм разцъквал особено prestashop направих следното(Изчистих следните таблици, че всяка таблица имаше няколко милиона реда):

truncate ps_connections;
truncate ps_connections_page;
truncate ps_connections_source;
truncate ps_guest;
truncate ps_pagenotfound;
truncate ps_page_viewed;
truncate ps_referrer_cache;
truncate ps_date_range;

Проблема не се оправи :), но все пак се оптимизира сайта и работи далеч по- бързо от преди;

Проблема се оказа в следното: В таблицата където са описани ваучерите имаше изкл. голям брой редове(автоматично се генерират от фейсбук приложение което явно е прекалило с броя ). За да се реши проблема тествах да премахна първо неактивните ваучери т.е. изтеклите:

delete FROM ps_cart_rule WHERE date_to < NOW();

, но това не помогна. За целта премахнах всички ваучери:

truncate ps_cart_rule;

Вярно е, че ваучерите ги няма, но всичко си работи. Сега ще се генерират наново НЕОБХОДИМИЯ БРОЙ ВАУЧЕРИ и всичко ще си е наред :)

PS: Не препоръчвам употребата на готови системи, но няма как те също имат предимстава… макар и не толкова колкото custom системите.

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

Електронни таблици- проверка за дублирани клетки

Идеята е, че имаме списък с имейл адреси и фирми , но понеже има вероятност да бъдат дублирани затова се налага да ги премахнем. За целта използваме openoffice.Казвам "електронни таблици" защото това не е excel, но да и в excel също ще работи :)

Може да се премахне през mysql, но тук става по- лесно защото не е въпроса просто да се махнат дублиращите , а да се определи кои ред ще остане като критериите не са особено ясни( т.е. не са известни всички вариации на колоните и затова се налага човешки интелект . Затова не може да се автоматизира така лесно).

Вместо куп обяснения, ще има малка шепа снимки:

excel_dublirani_tablici_1

Фиг. 1

excel_dublirani_tablici_2

Фиг. 2

excel_dublirani_tablici_3

Фиг. 3

excel_dublirani_tablici_4

 

Фиг. 4

excel_dublirani_tablici_5

Фиг. 5

Става ясно, че калкулира дублите и оцветява тези стойности които са по- големи от 1 ;)

 

 

 

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