Umask е механизъм по който може да се задава новосъздадените файлове в Unix/Linux системи с какви права да са.
Стандартно файловете се създават с 666 права (rw-rw-rw) а директориите с 777 (rwxrwxrwx). Тук идва и функцията на umask. Ето как става:
1. създава се файл с права за достъп 666.
2. взема се текущата umask от обкръжението (примерно umask е 022).
3. прави се логически NOT на umask.
4. след това се прави логически AND между първоначалните права на файла (666 или ако е дир 777) и инверсната umask.
5. получената стойност са правата за достъп на файла.
пример:
umask 023
file с права за достъп - 666
Обръщаме всичко от осмична в двоична система.
110 110 110 (666)
000 010 011 (023)
Инвертираме umask:
110 110 110 (666)
111 101 100 (!023)
След това правим логически AND между 2те стойности (получава се 1 когато и двете стойности са 1)
110 110 110 (666)
AND
111 101 100 (!023)
--------------------
110 100 100 (644)
(дано не съм объркал нещо, защото това го писах една сутрин докато се събуждах с кафето)
Tuesday, June 12, 2012
Thursday, April 19, 2012
Въведение в daemontools (DJB Way)
Софтуера, написан от професор Daniel J. Bernstein е трудно разбираем за много хора и може би за това не е толкова популярен. В тази статия ще се опитам да обясня концепията, стояща зад неговите програми.
Bernstein е приел модела на UNIX, тоест програмите да са колкото се може по-малки, да вършат строго определена работа, да комуникират посредством unix pipes. Ето пример, който всеки администратор използва:
# ps ax|grep httpd|wc -l
12
Типичен pipeline, където изхода от програмата ps се подава на входа на програмата grep, която пък отбира редовете които съдържат httpd, като след това се подава на програмата wc, която преброява колко реда съдържат httpd и отпечатва стойността. В случая - в момента имаме 12 активни процеса на httpd.
Кодът на програмите му е написан на ANSI C, компилира се на всякакви OS поддържащи POSIX модела.
Ще започнем с daemontools, които са основата на неговият тип софтуер. Daemontools представлява пакет от малки полезни програмки, които следят и поддържат даден процес да бъде активен. Добър аналог на тази система е Services в Windows XP/7.
Инсталацията е опростена максимално:
# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
# zcat daemontools-0.76.tar.gz|tar xvf -
# cd admin/daemontools-0.76
# package/install
Програмата добавя ред в /etc/inittab:
SV:123456:respawn:/usr/bin/svscanboot
който указва, че ако процесът svscanboot завърши по някакъв начин, трябва да се стартира наново.
Всъщност svscanboot е просто един скрипт:
#!/bin/sh
# WARNING: This file was auto-generated. Do not edit!
PATH=/command:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin
exec </dev/null
exec >/dev/null
exec 2>/dev/null
svc -dx /service/* /service/*/log
env - PATH=$PATH svscan /service 2>&1 | \
env - PATH=$PATH readproctitle service errors: ........................................................................................................
.......................................................................................................................................................
.................................................................................................................................................
Скриптът изпълнява svscan, с опция директорията с /services, като изхода на svscan е пренасочен към друга програмка - readproctitle. Ако има грешки при стартирането на някой service, то съобщението за грешка ще го получи readproctitle, който от своя старна ще го отпечата на мястото на точките. Това ни дава възможността да проследим грешките от /service ето така:
`--# ps ax|grep readproc
173 ttyE0- IW 0:00.01 readproctitle service errors: ..................................................................................................................................................
Както се вижда - грешки няма. Ето пример - когато има грешки (промених нарочно run файла в който се стартира multilog -> multilog_proba_za_error) :
`--# ps aux|grep readproc
root 172 0.0 0.0 16 500 ttyE0- S 2Mar12 0:00.02 readproctitle service errors: ...s not exist\nsetuidgid: fatal: unable to run multilog_proba_za_error: file does not exist\nsetuidgid: fatal: unable to run multilog_proba_za_error: file does not exist\nsetuidgid: fatal: unable to run multilog_proba_za_error: file does not exist\nsetuidgid: fatal: unable to run multilog_proba_za_error: file does not exist\nsetuidgid: fatal: unable to run multilog_proba_za_error: file does not exist\n
Структура на директориите при daemontools. Всеки отделен service се пуска от отделна поддиректория на основната за daemontools - /service (при Debian например е /etc/service).
Да кажем, че искате да пуснете програма през daemontools, като целта е програмата да се следи дали не е приключила, и ако е - да се пусне наново. За целта създаваме директория в удобно за нас място (Примера е пускане на sshd през daemontools).
mkdir -p /etc/svc/sshd
mkdir -p /etc/svc/sshd/log
Всяка една от тези 2 директории трябва да съдържа по един run - файл, в който се осъществява самото стартиране на програмата. Изискването е програмата да НЕ се пуска във фонов режим (background/daemon).
Daemontools ще се погрижи тя да си отиде във фонов режим. Ако програмата записва в логовете през syslog - системата, трябва да потърсите опция която указва грешките, и логовете да се пишат в stderr или stdout. Ако не направите това, то multilog - програмката няма да може да прихване и запише логовете в log - директорията.
/etc/svc/sshd/run - файла, в който стартираме самия процес.
#!/bin/sh exec 2>&1 exec /usr/local/sbin/sshd -D -e
Забележка:Опциите на sshd са, за да се спазят изискванията на daemontools (текста отдолу е изваден от man страницата на sshd).
-D When this option is specified, sshd will not detach and does not become a daemon. This allows easy monitoring of sshd.
-e When this option is specified, sshd will send the output to the standard error instead of the system log.
exec 2>&1 - указва всички грешки отпечатани на stderr (2) да се пренасочат към stdout (1)
/etc/programa1/sshd/log/run - файла, в който стартираме процеса, който запазва логовете на sshd
#!/bin/sh exec setuidgid root multilog t /var/log/sshd
В случаят програмката multilog се пуска с правата на потребител root, t означава да добави timestamp (във формат tai64 който ще бъде обяснен по-долу) в началото на всеки ред, и накрая се указва директорията, в която ще се съхраняват логовете. Multilog има още няколко допълнителни опции, които са полезни като например: n (брой log файлове) и s (размер на log файловете). Ако променим реда ето така:
то всеки log файл ще има размер 500,000 bytes и максималния брой на log - файловете ще е 50. Когато се запълнят всичките 50 файла с по 500 000 bytes, се изтрива най-старият файл и се създава нов.exec setuidgid root multilog t s500000 n50 /var/log/sshd
Логовете се записват под формата на timestamp като име на файл освен текущият, който е current. Ето извадка от списък с логове:
-rwxr--r-- 1 qmaill nogroup 16775307 Mar 14 06:13 @400000004f601b0c36890194.sЕдинственото, което остана за да стартираме ssh service през daemontools е да направим symbolic link на директорията, която създадохме (/etc/svc/sshd/) към /service/. Ето така:
-rwxr--r-- 1 qmaill nogroup 16775283 Mar 17 22:00 @400000004f64ed533284f5e4.s
-rwxr--r-- 1 qmaill nogroup 16775332 Mar 21 16:57 @400000004f69ec6132814c64.s
-rwxr--r-- 1 qmaill nogroup 16775234 Mar 26 16:32 @400000004f706ffb12df90dc.s
-rwxr--r-- 1 qmaill nogroup 16775255 Mar 30 07:42 @400000004f7539d52ef51c4c.s
-rwxr--r-- 1 qmaill nogroup 16775226 Apr 2 17:13 @400000004f79b3fb24fd9cb4.s
-rwxr--r-- 1 qmaill nogroup 16775247 Apr 4 12:27 @400000004f7c140f3760cbc4.s
-rw-r--r-- 1 qmaill nogroup 10108940 Apr 18 15:42 current
# ln -s /etc/svc/sshd/ /services/sshdслед което този новосъздаден от нас service ще се стартира автоматично.
Може би забелязахте, че пропуснах да обясня някои от използваните програмки като setuidgid или пък svc. Нека обърнем малко внимание и на допълнителните програмки, които идват с daemontools.
svc - служи за контрол на services за които се грижи supervise. С тази програмка на практика изпращате различни сигнали към даденият service.
-u (up) Стартира service. Ако не е стартиран - го стартира. Ако процесът по някаква причина завърши - процесът се рестартира.
-d (down) Спира service. Ако е стартиран, му изпраща сигнал TERM. След като е спрян, service не се рестартира.
-o (once) Стартира се само веднъж. При спиране на service не се рестартира.
-p (pause) Изпраща сигнал STOP..
-t (terminate) Изпраща сигнал TERM. На практика с тази опция се рестартира даден service. Процесът получава TERM - сигнал който би трябвало да го спре и след няколко секунди supervise ще го вдигне отново.
-k (kill) Изпраща сигнал KILL.
Има и още опции, и за повече информация погледнете man - страницата, или на http://cr.yp.to/daemontools/svc.html. Примери:
svc -t /service/* - рестартира всички services.
svc -d /service/qmail-send/ - спира даденият service.
svc -u /service/qmail-send/ - стартира даденият service.
svok - проверява дали даден service е стартиран. Връща стойност 0 ако service е активен, и 100 - ако service не е активен. Може да се използва в скритове.
svstat - показва текущия статус на даден service(s). Може да съдържа произволен брой аргументи, като всеки от тях е път към даден service. Поддържа и wildcards. Пример:
# svstat /service/qmail-send/ /service/qmail-smtpd/
/service/qmail-send/: up (pid 3540) 1891374 seconds
/service/qmail-smtpd/: up (pid 3539) 1891374 seconds
или
# svstat /service/*/log
/service/qmail-send/log: up (pid 7695) 6134915 seconds
/service/qmail-smtpd/log: up (pid 15281) 3457319 seconds
setuidgid - Стартира процес с права на друг потребител. Ако даден service не са му нужни root права, можем да го пуснем с друг потребител с ограничени права. Примерът от по-горе:
#!/bin/sh
exec setuidgid root multilog t /var/log/sshd
стартира multilog с правата на потребител root. Както се вижда, не е нужно multilog да се стартира с root права, и за целта можем да направим следното: създаваме нов потребител (примерно sshlog), променяме притежателя на директорията /var/log/sshd на sshlog (chown sshlog /var/log/sshd), и след това променяме и реда ,с който се стартира multilog, за да стане така:
#!/bin/sh
exec setuidgid sshlog multilog t /var/log/sshd
Така процесът за log - файловете ще е стартиран с ограничените права на потребителя sshlog.
envuidgid - Стартира процес с обкръжението на даден акаунт.
softlimit - Стартира процес с ограничени ресурси като максимална памет която може да заема, големина на създадените файлове и т.н. (аналог на ulimit). Пример:
# softlimit -m 2000000 /bin/sh
# mc
mc: error while loading shared libraries: libslang.so.2: failed to map segment from shared object: Cannot allocate memory
стартира /bin/sh с ограничено използване на памет от 2 000 000 bytes. При опит да се стартира нещо, което заема памет (като midnight commander) се вижда какъв е резултата.
Тази опция я използвам при qmail за лимитиране на големината на получените съобщения.
tai64nlocal - Чете от stdin, търси редове, които започват с @ и след тях има tai64 timestamp, като ги преобразува във формат: YYYY-MM-DD HH:MM:SS.SSSSSSSSS. Пример:
оригинален timestamp от log файл на multilogTAI (Temps Atomique International) е международен стандарт за измерване на време, който за момента не се използва в масовите операционни системи (http://cr.yp.to/proto/utctai.html).
@400000004eef68ef060b533c status: local 0/10 remote 2/20
# echo "@400000004eef68ef060b533c status: local 0/10 remote 2/20"|tai64nlocal
2011-12-19 18:40:05.101405500 status: local 0/10 remote 2/20
Tai64 е имплементация, направена от Dan Bernstein, която се използва в неговите програми (http://cr.yp.to/proto/tai64.txt).
fghack - anti-backgrounding tool. Ако имате програма, която винаги се старира във фонов режим (background/daemon), с тази програмка можете да "излъжете" тя да се стартира във foreground режим. (не съм го пробвал а и DJB казва, че не работи във всички случаи)
pgrphack - понякога има програми, които при изход изпращат TERM - сигнал не до процес - ID (pid), а до груповия ID (gid), при което сигналът се получава и от svscan, от което последствията не са много приятни. За пример е даден pppd програмата, която трябва да се пуска точно с pgrphack. (това лично аз не съм го тествал).
Ползвани ресурси: http://cr.yp.to/daemontools.html
Tuesday, April 17, 2012
Debian - автоматичен update и dpkg опцията hold.
Случвало ли ви се е да направите upgrade при който някои от пакетите да ви развалят конфигурацията. Ето какво често се случва.
Стандартна инсталация на Debian при която някои от пакетите са преправени от мен. Dovecot-imapd пакета нямаше поддръжка за vpopmail затова ми се наложи да го rebuild с тази опция. Всичко работи до момента в който направите upgrade. Upgrade процесът премахва ръчно преправените пакети на dovecot и слага оригиналните. В този случай задължително е да ползвате опцията на dpkg - HOLD. Това прави така наречените HOLD пакети да не бъдат обновявани при цялостен upgrade на системата.
Следните 2 пакета не искам да бъдат обновявани при upgrade на системата:
За целта е нужно да се направи следното:
Ето и разликата:
Забележете буквата 'h' в началото на пакетите. Подобна информация можем да получим и чрез:
Остава само да сложите в crontab-а един ред за автоматичен update (apt-get update && apt-get -y dist-upgrade) и машината спокойно може да я забравите някъде зазидана след поредния ремонт...
Стандартна инсталация на Debian при която някои от пакетите са преправени от мен. Dovecot-imapd пакета нямаше поддръжка за vpopmail затова ми се наложи да го rebuild с тази опция. Всичко работи до момента в който направите upgrade. Upgrade процесът премахва ръчно преправените пакети на dovecot и слага оригиналните. В този случай задължително е да ползвате опцията на dpkg - HOLD. Това прави така наречените HOLD пакети да не бъдат обновявани при цялостен upgrade на системата.
Следните 2 пакета не искам да бъдат обновявани при upgrade на системата:
root@server:~# dpkg -l | grep dove
ii dovecot-common 1:1.2.15-7 secure mail server that supports mbox and maildir mailboxes
ii dovecot-imapd 1:1.2.15-7 secure IMAP server that supports mbox and maildir mailboxes
За целта е нужно да се направи следното:
root@server:~# echo dovecot-common hold | dpkg --set-selections
root@server:~# echo dovecot-imapd hold | dpkg --set-selections
Ето и разликата:
root@server:~# dpkg -l | grep dove
hi dovecot-common 1:1.2.15-7 secure mail server that supports mbox and maildir mailboxes
hi dovecot-imapd 1:1.2.15-7 secure IMAP server that supports mbox and maildir mailboxes
Забележете буквата 'h' в началото на пакетите. Подобна информация можем да получим и чрез:
root@server:~# dpkg --get-selections | grep hold
dovecot-common hold
dovecot-imapd hold
Остава само да сложите в crontab-а един ред за автоматичен update (apt-get update && apt-get -y dist-upgrade) и машината спокойно може да я забравите някъде зазидана след поредния ремонт...
Labels:
apt,
apt-get,
debian,
dpkg,
get selections,
hold,
set selections
Thursday, March 22, 2012
Windows DNS tools и как да ги използваме.
DNS тип заявки
А - на кое IP отговаря www.google.com.
AAAA - IPv6 версията на A.
MX - кои сървъри отговарят за e-mail-ите на google.com.
NS - кой сървъри отговарят за DNS записите на google.com.
SOA - Start of Authorite - пъртият DNS сървър отговарящ за зоната google.com.
PTR - обратен запис - на кой хост отговаря 195.177.249.170
TXT - текстов запис, може да се ползва за всичко, най-използвани са SPF TXT записи за емейл SPAM защита.
Windows nslookup.exe (start->run->cmd.exe)
Nslookup е инструмент за диагностика на DNS сървър. Освен основното което всеки администратор е ползвал C:>nslookup www.dir.bg, програмката предлага и други опции които са полезни за диагностика. Без допълнително опции nslookup изпраща запитване за A запис.
Какъв е SOA записът за зоната google.com?
Кои DNS сървъри отговарят за зоната google.com?
На кой host отговаря 216.239.32.10?
Както виждаме google.com нямат IPv6 запис. (Всъщност google има AAAA запис, но връща отговор за такъв само когато е достъпван през IPv6 мрежа: http://www.google.com/intl/en/ipv6/)
IPv6 за www.netbsd.org?
Non-authoritative DNS answer:
Този тип отговори идват от DNS cache сървъри.
В случая 10.1.42.1 е DNS сървър въведен в мрежовите настройки (или /etc/resolv.conf).
* клиента пита своят DNS cache server: кои сървъри отговарят за e-mail-ите на google.com.
* DNS cache сървърът намира NS записите на google.com и пита authoritative сървъра кои сървъри отговарят за e-mail-ите на google.com.
* DNS cache сървърът отговаря на клиента.
* В случая огтоворът е Non-authoritative.
Authoritative answer:
Отговорът идва от DNS сървър отговарящ за зоната google.com. За целта предварително намираме кои DNS сървъри отговарят за google.com.
* клиента пита директно сървър отговарящ за зоната google.com
* отговорът е Authoritative
DNS client service:
Windows предлага dns client service който кешира локално dns заявките. Не е много ясно точно как работи но някои неща все пак можем да видим и сами.
ipconfig/flushdns
Това изтрива локалният кеш на dns client service. Понякога този service прави проблеми. Ако правите някакви промени по DNS записи, най-добре е този service да бъде спрян докато правите тестовете.
При спян DNS Client service не се кешира нищо на локалния компютър а за всяко DNS запитване се пита dns cache сървъра. При пуснат service, веднъж получен отговор от DNS cache сървъра, записът се кешира локално както се вижда и по-горе (Time To Live . . . . : 233 примерно).
Парадоксът: Нямам интернет, но имам Skype!
Когато това нещо се получи вероятността проблемът да е в DNS сървърите които ползвате е около 99%. Как можем да го тестваме? Аз използвам публчните DNS cache сървъри на google който са достъпни за всички и най-вече се помнят много лесно. Ето ги:
Ако имате Skype, но "нямате интернет" винаги може да въведете един от тези DNS сървъри и да пробвате дали вече "имате интернет".
А - на кое IP отговаря www.google.com.
AAAA - IPv6 версията на A.
MX - кои сървъри отговарят за e-mail-ите на google.com.
NS - кой сървъри отговарят за DNS записите на google.com.
SOA - Start of Authorite - пъртият DNS сървър отговарящ за зоната google.com.
PTR - обратен запис - на кой хост отговаря 195.177.249.170
TXT - текстов запис, може да се ползва за всичко, най-използвани са SPF TXT записи за емейл SPAM защита.
Windows nslookup.exe (start->run->cmd.exe)
Nslookup е инструмент за диагностика на DNS сървър. Освен основното което всеки администратор е ползвал C:>nslookup www.dir.bg, програмката предлага и други опции които са полезни за диагностика. Без допълнително опции nslookup изпраща запитване за A запис.
Какъв е SOA записът за зоната google.com?
C:\>nslookup -type=soa google.com
Server: UnKnown
Address: 10.1.42.1
Non-authoritative answer:
google.com
primary name server = ns1.google.com
responsible mail addr = dns-admin.google.com (dns-admin@google.com)
serial = 2012010300
refresh = 7200 (2 hours)
retry = 1800 (30 mins)
expire = 1209600 (14 days)
default TTL = 300 (5 mins)
Кои DNS сървъри отговарят за зоната google.com?
C:\>nslookup -type=ns google.comКой сървъри отговарят за емейла @google.com?
Server: UnKnown
Address: 10.1.42.1
Non-authoritative answer:
google.com nameserver = ns3.google.com
google.com nameserver = ns1.google.com
google.com nameserver = ns2.google.com
google.com nameserver = ns4.google.com
C:\>nslookup -type=mx google.com
Server: UnKnown
Address: 10.1.42.1
Non-authoritative answer:
google.com MX preference = 30, mail exchanger = alt2.aspmx.l.google.com
google.com MX preference = 50, mail exchanger = alt4.aspmx.l.google.com
google.com MX preference = 10, mail exchanger = aspmx.l.google.com
google.com MX preference = 40, mail exchanger = alt3.aspmx.l.google.com
google.com MX preference = 20, mail exchanger = alt1.aspmx.l.google.com
На кой host отговаря 216.239.32.10?
C:\>nslookup -type=ptr 216.239.32.10IPv6 запис за google.com?
Server: UnKnown
Address: 10.1.42.1
Non-authoritative answer:
10.32.239.216.in-addr.arpa name = ns1.google.com
C:\>nslookup -type=aaaa google.com
Server: UnKnown
Address: 10.1.42.1
*** No IPv6 address (AAAA) records available for google.com
Както виждаме google.com нямат IPv6 запис. (Всъщност google има AAAA запис, но връща отговор за такъв само когато е достъпван през IPv6 мрежа: http://www.google.com/intl/en/ipv6/)
IPv6 за www.netbsd.org?
C:\>nslookup -type=aaaa www.netbsd.orgКакъв е TXT записът за google.com? (ползва се предимно за SPF)
Server: UnKnown
Address: 10.1.42.1
Non-authoritative answer:
Name: www.netbsd.org
Address: 2001:4f8:3:7:2e0:81ff:fe52:9a6b
C:\>nslookup -type=txt google.comTXT записът е всъщност SPF запис който показва кой сървъри могат да изпращат емейли ОТ @google.com.
Server: UnKnown
Address: 10.1.42.1
Non-authoritative answer:
google.com text =
"v=spf1 include:_netblocks.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"
Non-authoritative DNS answer:
Този тип отговори идват от DNS cache сървъри.
В случая 10.1.42.1 е DNS сървър въведен в мрежовите настройки (или /etc/resolv.conf).
* клиента пита своят DNS cache server: кои сървъри отговарят за e-mail-ите на google.com.
* DNS cache сървърът намира NS записите на google.com и пита authoritative сървъра кои сървъри отговарят за e-mail-ите на google.com.
* DNS cache сървърът отговаря на клиента.
* В случая огтоворът е Non-authoritative.
C:\>nslookup -type=mx google.comТоест отговорът не е получен от DNS сървър отговарящ за зоната google.com.
Server: UnKnown
Address: 10.1.42.1
Non-authoritative answer:
google.com MX preference = 50, mail exchanger = alt4.aspmx.l.google.com
google.com MX preference = 10, mail exchanger = aspmx.l.google.com
google.com MX preference = 40, mail exchanger = alt3.aspmx.l.google.com
google.com MX preference = 30, mail exchanger = alt2.aspmx.l.google.com
google.com MX preference = 20, mail exchanger = alt1.aspmx.l.google.com
Authoritative answer:
Отговорът идва от DNS сървър отговарящ за зоната google.com. За целта предварително намираме кои DNS сървъри отговарят за google.com.
* клиента пита директно сървър отговарящ за зоната google.com
* отговорът е Authoritative
C:\>nslookup -type=ns google.com
Server: UnKnown
Address: 10.1.42.1
Non-authoritative answer:
google.com nameserver = ns2.google.com
google.com nameserver = ns1.google.com
google.com nameserver = ns3.google.com
google.com nameserver = ns4.google.com
C:\>nslookup -type=mx google.com ns1.google.com
Server: ns1.google.com
Address: 216.239.32.10
google.com MX preference = 30, mail exchanger = alt2.aspmx.l.google.com
google.com MX preference = 50, mail exchanger = alt4.aspmx.l.google.com
google.com MX preference = 20, mail exchanger = alt1.aspmx.l.google.com
google.com MX preference = 10, mail exchanger = aspmx.l.google.com
google.com MX preference = 40, mail exchanger = alt3.aspmx.l.google.com
alt2.aspmx.l.google.com internet address = 74.125.127.27
alt4.aspmx.l.google.com internet address = 209.85.225.27
alt1.aspmx.l.google.com internet address = 209.85.173.27
aspmx.l.google.com internet address = 74.125.79.27
alt3.aspmx.l.google.com internet address = 74.125.81.27
DNS client service:
Windows предлага dns client service който кешира локално dns заявките. Не е много ясно точно как работи но някои неща все пак можем да видим и сами.
C:\>ipconfig/displaydnsТова са кешираните заявки от DNS Client service.
Windows IP Configuration
1.0.0.127.in-addr.arpa
----------------------------------------
Record Name . . . . . : 1.0.0.127.in-addr.arpa.
Record Type . . . . . : 12
Time To Live . . . . : 424617
Data Length . . . . . : 4
Section . . . . . . . : Answer
PTR Record . . . . . : localhost
vbox7.com
----------------------------------------
Record Name . . . . . : vbox7.com
Record Type . . . . . : 1
Time To Live . . . . : 24180
Data Length . . . . . : 4
Section . . . . . . . : Answer
A (Host) Record . . . : 87.121.59.2
www.samedeutz-fahr.com
----------------------------------------
Record Name . . . . . : www.samedeutz-fahr.com
Record Type . . . . . : 1
Time To Live . . . . : 86375
Data Length . . . . . : 4
Section . . . . . . . : Answer
A (Host) Record . . . : 84.33.3.3
en.wikipedia.org
----------------------------------------
Record Name . . . . . : en.wikipedia.org
Record Type . . . . . : 5
Time To Live . . . . : 233
Data Length . . . . . : 4
Section . . . . . . . : Answer
CNAME Record . . . . : wikipedia-lb.wikimedia.org
.......
.......
ipconfig/flushdns
Това изтрива локалният кеш на dns client service. Понякога този service прави проблеми. Ако правите някакви промени по DNS записи, най-добре е този service да бъде спрян докато правите тестовете.
При спян DNS Client service не се кешира нищо на локалния компютър а за всяко DNS запитване се пита dns cache сървъра. При пуснат service, веднъж получен отговор от DNS cache сървъра, записът се кешира локално както се вижда и по-горе (Time To Live . . . . : 233 примерно).
Парадоксът: Нямам интернет, но имам Skype!
Когато това нещо се получи вероятността проблемът да е в DNS сървърите които ползвате е около 99%. Как можем да го тестваме? Аз използвам публчните DNS cache сървъри на google който са достъпни за всички и най-вече се помнят много лесно. Ето ги:
google public dns cache 1: 8.8.8.8
google public dns cache 2: 8.8.4.4
Ако имате Skype, но "нямате интернет" винаги може да въведете един от тези DNS сървъри и да пробвате дали вече "имате интернет".
Tuesday, January 17, 2012
String replacing in VIM.
To replace a string with vim do the following:
:%s/string/replace string/g% - means search and replace in whole file
If you want to replace stuff in certain portion of the file you can do following:
:20,50 s/string/replace string/g:20,50 will search and replace string in rows between 20 and 50
Escaping special chars with \. Look at following example. I need to replace /usr/src/ with /var/log/archive in one of my scripts:
:%s/\/usr\/src/\/var\/log\/archive/g
Friday, December 16, 2011
DNSCurve, NaCl, CurveCP - съвременен поглед върху защитата на данните в интернет.
This summary is not available. Please
click here to view the post.
Sunday, December 4, 2011
PowerMac G4/1Ghz with Nvidia GeForce 440mx notes
Just a few notes for OpenFirmware, Xorg configuration. Sources guide-open-firmware-apple-bios-0, xorgconf-powermac-g41ghz-geforce-4-mx-apple-studio-display-17, http://sowerbutts.com/linux-mac-mini/.
OpenFirmware:
OpenFirmware:
Booting installation of Debian GNU/Linux Squeeze 6.0 on PowerMac G4/1Ghz:
- ls - displays contents of the current path in the device tree.
- devalias - provides a list of short alias names for key hardware devices.
- .properties - provides a list of properties for the selected device.
- pwd - displays the current path within the device tree.
- dev - selects a device (using either the alias or absolute/relative device tree path).
- words - provides a list of forth scripts associated with the selected device.
- source - executes a particular forth script.
- load - loads a image from disk, cd, network or another device.
- go - execites the currently loaded image.
- see - displays the source code for a particular forth script.
0>boot cd:,\install\yabootPartition disk:
1. Don't touch the small Partition #1 at the start of the disk, that contains the partition map itself.
2. Partition #2 (16MB) is for "yaboot", the bootstrap that allows you to boot
3. Linux or MacOS. You want to tell the partitioner to use that partition as a "NewWorld boot partition", and set the bootable flag.
4. Partition #3 (2.0GB) should be used as "swap area".
5. Partition #4 (48.0GB) is your root filesystem, you want to use that as a "ReiserFS journalling file system", format it, and mount it on "/"
Booting after installation:
0>setenv boot-file hd:3,\yaboot
Xorg.conf PowerMac G4/1GHz GeForce 4 MX:
Section "Device"
Identifier "Configured Video Device"
BusID "PCI:0:16:0"
Driver "nv"
EndSection
Section "Monitor"
Identifier "StudioDisplay17"
Option "DPMS"
HorizSync 30-80
VertRefresh 50-100
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "StudioDisplay17"
Device "Configured Video Device"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 16
Modes "1280x1024" "1024x768""800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 15
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 4
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"
Depth 1
Modes "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
EndSection
Section "DRI"
Mode 0666
EndSection
Labels:
commands,
config,
configuration,
debian,
g4,
geforce mx440,
install,
linux,
macppc,
openfirmware,
partition,
powermac,
powerpc,
xorg,
yaboot
Subscribe to:
Posts (Atom)