Pagpangita sa Linux. Pahalipay sa mga mananaog ug sultihi kami bahin sa mga solusyon sa mga buluhaton

Pagpangita sa Linux. Pahalipay sa mga mananaog ug sultihi kami bahin sa mga solusyon sa mga buluhaton

Niadtong Marso 25 giablihan namo ang pagparehistro para sa Pagpangita sa Linux, kini usa ka Dula alang sa mga mahigugmaon ug eksperto sa Linux operating system. Pipila ka estadistika: 1117 ka mga tawo ang nagparehistro alang sa dula, 317 kanila nakakaplag sa labing menos usa ka yawe, 241 malampuson nga nakakompleto sa buluhaton sa unang yugto, 123 - ang ikaduha ug 70 ang milabay sa ikatulo nga yugto. Karon natapos na ang among dula ug among pahalipayan ang among mga nakadaog!

  • Alexander Teldekov mikuha sa unang dapit.
    Si Alexander miingon sa iyang kaugalingon nga siya ang labing kasagaran nga tigdumala sa sistema. Nagpuyo sa Volgograd, nagdumala sa lainlaing mga sistema nga sama sa Unix sulod sa mga baynte ka tuig. Nakatrabaho ko sa Internet providers, bangko, ug system integrator. Karon nagtrabaho siya sa layo sa usa ka gamay nga kompanya, nagtrabaho sa imprastraktura sa panganod alang sa usa ka dako nga langyaw nga kustomer. Ganahan magbasa ug maminaw sa musika. Mahitungod sa Dula, si Alexander miingon nga ganahan siya sa dula sa kinatibuk-an, ganahan siya sa maong mga buluhaton. Atol sa usa ka interbyu sa usa sa mga kompanya nga akong gibuhat sama sa Hackerrank, kini makapaikag.
  • Ikaduhang dapit - Roman Suslov.
    Usa ka nobela gikan sa Moscow. Siya 37 anyos. Nagtrabaho isip inhenyero sa Linux/Unix sa Jet Infosystems. Sa trabahoan, kinahanglan kong magdumala ug mag-troubleshoot sa Linux/Unix systems + SAN. Lainlain ang mga interes: Linux system, programming, reverse engineering, information security, Arduino. Mahitungod sa Dula si Roman nakamatikod nga ganahan siya sa dula sa kinatibuk-an. β€œGiinat kog gamay ang akong utok ug mipahuway gikan sa abuhon nga adlaw-adlaw nga kinabuhi sa matag adlaw nga trabaho. πŸ™‚ Gusto ko nga adunay daghang mga buluhaton, kung dili sa wala pa ako adunay panahon sa pagtilaw niini, ang dula nahuman na.
  • Ikatulo - alex3d.
    Si Alex nagpuyo sa Moscow ug nagtrabaho sa software development. "Salamat sa kompetisyon, makapaikag nga sulayan ang akong kahanas sa google-fu."

Usab sa ranggo sa 10 nga labing kaayo nga magdudula:

  • Yevgeniy Saldayev
  • Markel Mokhnachevsky
  • Konstantin Konosov
  • Pavel Sergeev
  • Vladimir Bovaev
  • Ivan Bubnov
  • Pavlo Klets

Nasabtan namo nga adunay daghang mga kapilian sa pagsulbad sa tanan namong mga problema; pipila sa mga posible nga solusyon gihulagway sa ubos.

1. Unang yugto

Gitawag namon kini nga "Admin ka ba gyud?", Tungod kay ang buluhaton yano ra - aron ayohon ang serbisyo sa mainit nga lampara.

1.1. Makapaikag nga mga Kamatuoran:

Nakaplagan sa duha ka magdudula ang unang yawe sa unang 15 minutos sa dula, ug sa unang oras aduna kamiy tulo ka mga lider nga nakakompleto sa buluhaton.

1.2. Pag-ehersisyo

Nagtrabaho ka sa usa ka kompanya diin sa dugay nga panahon wala’y takos nga espesyalista sa teknolohiya sa impormasyon. Sa dili ka pa magsugod sa paghan-ay sa mga butang, kinahanglan nimo nga sulbaron ang nagdilaab nga problema nga nagbabag sa trabaho sa opisina.

Gikuha sa tiglimpyo nga babaye ang kable sa kuryente sa kabinete sa server gamit ang mop. Gipahiuli ang gahum, apan ang usa ka hinungdanon kaayo nga website wala gihapon molihok. Importante ang website tungod kay ang kompanya dili kaayo nabalaka bahin sa kasiguruhan sa kasayuran, ug sa panguna nga panid makit-an nimo ang password sa tagdumala alang sa kompyuter sa CEO sa tin-aw nga teksto.

Sa miaging adlaw giusab ang password, apan ang tanan nakalimot sa bag-o, ang direktor dili molihok. Adunay mga hungihong nga adunay daghang mga yawe sa kini nga makina nga makatabang kanamo nga mahibal-an ang backup nga kopya sa mga dokumento sa accounting.

Ang tanan nagpaabot sa usa ka dali nga resolusyon sa isyu!

1.3. Solusyon

1. Una sa tanan, kinahanglan nimo nga usbon ang root password sa virtual machine aron maka-access niini. Sa pagsugod, among namatikdan nga kini ang Ubuntu 16.04 Server.

Aron ma-reset ang root password, gi-restart namon ang makina, kung nag-load, sa higayon nga gipakita ang grub menu, adto sa pag-edit sa item sa Ubuntu gamit ang "e" nga buton. I-edit ang linya sa linux, idugang kini sa katapusan init=/bin/bash. Nag-load kami pinaagi sa Ctrl + x, nakakuha kami usa ka bash. I-remount ang gamut gamit ang rw, usba ang password:

$ mount -o remount,rw /dev/mapper/ubuntu--vg-root
$ passwd

Ayaw kalimti ang bahin sa pag-sync, pag-reboot.

2. Ang kondisyon nag-ingon nga ang among web server wala magtrabaho, tan-awa:

$ curl localhost
Not Found
The requested URL / was not found on this server.
Apache/2.4.18 

Kana mao, sa tinuud, ang Apache nagdagan, apan nagtubag sa code 404. Atong tan-awon ang config:

$ vim /etc/apache2/sites-enabled/000-default.conf

Adunay usab usa ka yawe dinhi - StevenPaulSteveJobs.

Pagsusi sa agianan /usr/share/WordPress - wala'y ingon niana, apan adunay /usr/share/wordpress. I-edit ang config ug i-restart ang Apache.

$ systemctl restart apache2

3. Sulayi pag-usab, atong makuha ang sayop:

Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /usr/share/wordpress/wp-includes/wp-db.php on line 1488

Wala nagdagan ang database?

$ systemctl status mysql
Active: active (running)

Unsay problema? Kinahanglan natong masabtan kini. Aron mahimo kini, kinahanglan nimo nga makakuha og access sa MySQL, ingon sa gihulagway sa dokumentasyon. Usa sa mga punto sa dokumentasyon nagrekomenda nga irehistro namon ang kapilian skip-grant-tables Π² /etc/mysql/mysql.conf.d/mysqld.cnf. Adunay usab usa ka yawe dinhi - AugustaAdaKingByron.

Pagtul-id sa mga katungod sa tiggamit 'wp'@'localhost'. Gilunsad namo ang MySQL, gihimo kini nga accessible sa network, nagkomento sa opsyon sa config skip-networking.

4. Pagkahuman niini nga mga lakang, magsugod ang web server, apan ang site wala gihapon molihok tungod kay

Warning: require_once(/usr/share/wordpress/wp-content/themes/twentysixteen/footer.php): failed to open stream: Permission denied in /usr/share/wordpress/wp-includes/template.php on line 562

Gi-edit namo ang mga katungod sa file.

$ chmod 644 /usr/share/wordpress/wp-content/themes/twentysixteen/footer.php

Gi-refresh namon ang panid, adto sa site ug pangitaa ang yawe - BjarneStroustrup! Nakit-an namon ang tanan nga tulo nga mga yawe, mahimo’g magtrabaho ang among direktor, among gi-decrypt ang mga file sa accounting. Ang tanan malipayon, ug ikaw adunay daghang trabaho sa unahan nimo sa pag-set up sa imprastraktura, pag-backup ug seguridad sa kompanya.

2. Ikaduhang yugto

Gikinahanglan nga masulbad ang problema sa pagkolekta sa analytics. Ang tanan nahigugma sa analytics - kinsa ang naggamit niini, diin ug sa unsa nga gidaghanon. Naghimo kami og usa ka kaso nga ang tanan nga mga inhenyero mahimong makasugat sa usa ka porma o lain sa kinabuhi.

2.1. Makaiikag nga mga kamatuoran

Usa sa among mga magdudula misulod sa saktong yawe sulod sa unang 10 ka minuto sa dula, ug sulod sa unang oras aduna kami usa ka lider nga nakakompleto sa buluhaton.

2.2. Pag-ehersisyo

Miadto ka sa pagtrabaho sa kompanya, ang mga manedyer miadto kanimo ug gihangyo ka nga pangitaon kung kinsa ang gipadala nga mga sulat gikan sa Africa. Kinahanglan namon nga tukuron ang nanguna nga 21 nga mga adres sa nakadawat base sa kanila. Ang unang mga letra sa mga adres sa nakadawat mao ang yawe. Usa ka butang: ang mail server diin ang mga sulat gipadala wala mag-load. Ang tanan nagpaabut sa usa ka dali nga resolusyon sa isyu!

2.3. Solusyon

1. Ang server wala mag-boot tungod sa usa ka wala'y swap partition sa fstab; sa dihang nagkarga, ang sistema mosulay sa pag-mount niini ug nahagsa. Unsaon pag-boot?

I-download ang hulagway, among gi-download ang CentOS 7, boot gikan sa Live CD/DVD (Troubleshooting -> Rescue), mount the system, edit /etc/fstab. Nakaplagan dayon namo ang unang yawe - GottfriedWilhelm11646Leibniz!

Paghimo swap:

$ lvcreate -n swap centos -L 256M
$ sync && reboot

2. Sama sa kanunay, walay password, kinahanglan nimo nga usbon ang root password sa virtual machine. Nabuhat na namo kini sa unang buluhaton. Nagbag-o kami ug malampuson nga naka-log in sa server, apan kini gi-reboot dayon. Ang server na-overload sa ingon nga katulin nga wala ka'y ​​panahon sa pagtan-aw pag-ayo sa tanan nga mga troso. Unsaon pagsabot kung unsa ang nahitabo?

Pag-usab nag-boot kami gikan sa livecd, tun-an pag-ayo ang mga log sa sistema ug, kung adunay kaso, tan-awa ang cron, tungod kay ang ingon nga periodicity. Didto atong makita ang problema ug ang ikaduhang yawe - Alan1912MathisonTuring!

Kinahanglan sa /etc/crontab delete o comment out nga linya echo b > /proc/sysrq-trigger.

3. Human nga ang server na-load, ug mahimo nimong makompleto ang buluhaton sa mga manedyer: "Unsa ang mga adres sa Africa?" Kini nga impormasyon sa kasagaran anaa sa publiko. Makita nimo kini nga impormasyon sa Internet gamit ang mga hugpong sa mga pulong nga "ip address africa", "geoip database". Aron masulbad ang problema, mahimo nimong gamiton ang libre nga magamit nga mga database sa pag-apod-apod sa adres (geoip). Gigamit namo ang database isip usa ka sumbanan MaxMind GeoLite2, anaa ubos sa Creative Commons Attribution-ShareAlike 4.0 nga lisensya.

Atong sulayan nga sulbaron ang atong problema gamit lang ang Linux system utilities, apan sa kinatibuk-an masulbad kini sa daghang mga paagi: gamit ang text filtering utilities ug paggamit og mga script sa lain-laing programming language.

Sa pagsugod, makuha lang namo ang mga pares nga "sender-recipient IP" gikan sa mail log /var/log/maillog (magbuhat ta ug lamesa sa mga nakadawat sa email - nagpadala IP). Mahimo kini pinaagi sa mosunod nga sugo:

$ cat /var/log/maillog | fgrep -e ' connect from' -e 'status=sent' | sed 's/[]<>[]/ /g' | awk '/connect from/ {ip=$11} /status=sent/ {print $10" "ip}' > log1.txt

Ug sa dili pa kita magpadayon sa pag-compile sa usa ka database sa mga adres sa Africa, atong tan-awon ang mga nanguna nga IP address sa mga nagpadala.

$ cat log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n 40
5206 [email protected]
4165 [email protected]
3739 [email protected]
3405 [email protected]
3346 [email protected]

Taliwala sa tanan kanila, ang unang tulo ka nakadawat gikan sa taas klaro nga nagbarug sa mga termino sa gidaghanon sa mga letra. Kung imong makuha ang mga IP address sa mga nagpadala nga gipadala sa mga adres gikan niining top 3, imong mamatikdan ang usa ka tin-aw nga pagmando sa pipila nga mga network:

$ cat log1.txt | fgrep '[email protected]' | cut -d' ' -f2 | sort | cut -d'.' -f1 | uniq -c | sort -r | head
831 105
806 41
782 197
664 196
542 154
503 102
266 156
165 45
150 160
108 165

Kadaghanan sa mga network 105/8, 41/8, 196/8,197/8 gigahin sa AFRINIC - usa sa lima ka rehiyonal nga tigrehistro sa Internet nga nag-apod-apod sa mga kapanguhaan sa Internet. Ang AFRINIC nag-apod-apod sa luna sa address sa tibuok Africa. Ug ang 41/8 nagtumong sa AFRINIC sa hingpit.

https://www.nic.ru/whois/?searchWord=105.0.0.0 
https://www.nic.ru/whois/?searchWord=41.0.0.0

Sa ingon, ang tubag sa problema, sa tinuud, sa log mismo.

$ cat log1.txt | fgrep -e '105.' -e '41.' -e '196.' -e '197.' -e '154.' -e '102.' | awk '{print $1}' | sort | uniq -c | sort -r | head -n 21
4209 [email protected]
3313 [email protected]
2704 [email protected]
2215 [email protected]
1774 [email protected]
1448 [email protected]
1233 [email protected]
958 [email protected]
862 [email protected]
762 [email protected]
632 [email protected]
539 [email protected]
531 [email protected]
431 [email protected]
380 [email protected]
357 [email protected]
348 [email protected]
312 [email protected]
289 [email protected]
282 [email protected]
274 [email protected]

Niini nga yugto makuha nato ang string nga "LinuxBenedictTorvadst".

Husto nga yawe: "LinusBenedictTorvalds".

Ang resulta nga string adunay usa ka typo nga may kalabotan sa husto nga yawe sa katapusan nga 3 nga mga karakter. Kini tungod sa kamatuoran nga ang mga network nga among gipili dili hingpit nga gipahinungod sa mga nasud sa Africa ug sa paagi nga ang mga email giapod-apod sa mga IP address sa among log.

Uban sa igo nga detalye sa pinakadako nga network nga gigahin sa mga nasud sa Africa, usa ka tukma nga tubag ang makuha:

$ cat log1.txt | fgrep -e' '105.{30..255}. -e' '41. -e' '196.{64..47}. -e' '196.{248..132}. -e' '197.{160..31}. -e' '154.{127..255}. -e' '102.{70..255}. -e' '156.{155..255}. | awk '{print $1}' | sort | uniq -c | sort -r | head -n 21
3350 [email protected]
2662 [email protected]
2105 [email protected]
1724 [email protected]
1376 [email protected]
1092 [email protected]
849 [email protected]
712 [email protected]
584 [email protected]
463 [email protected]
365 [email protected]
269 [email protected]
225 [email protected]
168 [email protected]
142 [email protected]
111 [email protected]
 96 [email protected]
 78 [email protected]
 56 [email protected]
 56 [email protected]
 40 [email protected]

Ang problema masulbad usab sa laing paagi.
I-download ang MaxMind, i-unpack kini, ug ang sunod nga tulo ka mga sugo makasulbad usab sa among problema.

$ cat GeoLite2-Country-Locations-ru.csv | grep "Африка" | cut -d',' -f1 > africaIds.txt
$ grep -Ff africaIds.txt GeoLite2-Country-Blocks-IPv4.csv | cut -d',' -f1 > africaNetworks.txt
$ grepcidr -f africaNetworks.txt log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n21

Sa usa ka paagi o sa lain, sa katapusan among gikalkula ang mga estadistika, ug ang mga manedyer nakadawat sa datos nga ilang gikinahanglan aron magtrabaho!

3. Ikatulong hugna

Ang ikatulo nga yugto medyo susama sa una - kinahanglan nimo usab nga ayohon ang serbisyo sa mainit nga lampara, apan ang tanan mas komplikado kaysa sa una nga buluhaton.

3.1. Makaiikag nga mga kamatuoran

Sa unang 15 minutos, tulo ka mga magdudula ang nakakita sa unang yawe; 2 ka oras ug 20 ka minuto human sa pagsugod sa entablado, ang among mananaog nakakompleto sa buluhaton.

3.2. Pag-ehersisyo

Nagtrabaho ka sa usa ka kompanya diin ang tanan nga mga dokumento sa kompanya gitipigan sa usa ka internal nga server sa Wiki. Sa miaging tuig, usa ka inhenyero ang nagmando sa 3 ka bag-ong mga disk alang sa server dugang sa usa nga anaa na, nga nangatarungan nga aron ang sistema mahimong fault-tolerant, ang mga disk kinahanglan nga ibutang sa usa ka matang sa mga arrays. Ikasubo, pipila ka semana human sa ilang pag-instalar, ang engineer mibakasyon sa India ug wala na mobalik.

Ang server nagtrabaho nga walay mga kapakyasan sulod sa daghang mga tuig, apan pipila ka mga adlaw ang milabay ang network sa kompanya gi-hack. Sumala sa mga panudlo, gikuha sa mga kawani sa seguridad ang mga disk gikan sa server ug gipadala kini kanimo. Atol sa transportasyon, usa ka disk ang nawala nga dili na mabawi.

Kinahanglan namong ibalik ang gamit sa Wiki; una sa tanan, interesado kami sa sulod sa mga panid sa wiki. Ang usa ka piraso sa teksto nga naa sa usa sa mga panid niini nga wiki mao ang password alang sa 1C server ug gikinahanglan dayon aron maablihan kini.

Dugang pa, sa usa ka dapit sa mga panid sa wiki o sa laing dapit adunay mga password alang sa log server ug sa video surveillance server, nga gusto usab nga mabawi; kung wala sila, imposible ang imbestigasyon sa insidente. Sama sa kanunay, gipaabut namon ang usa ka dali nga resolusyon sa isyu!

3.3. Solusyon

1. Gisulayan namo nga i-boot ang tagsa-tagsa gikan sa mga disk nga anaa kanamo ug bisan asa kami makadawat sa samang mensahe:

No bootable medium found! System halted 

Kinahanglan ka nga mag-boot gikan sa usa ka butang. Ang pag-boot gikan sa usa ka Live CD/DVD (Troubleshooting -> Rescue) makatabang pag-usab. Kung nagkarga, gisulayan namon nga makit-an ang partisyon sa boot, dili namon kini makit-an, natapos kami sa kabhang. Gisulayan namon nga tun-an kung unsa ug kung unsaon pagbuhat sa mga disk. Nasayran nga tulo sila. Adunay daghang mga himan alang niini sa ika-7 nga bersyon sa CentOS, diin adunay mga mando blkid o lsblk, nga nagpakita kanamo sa tanang impormasyon bahin sa mga disk.

Giunsa ug unsa ang among gibuhat:

$ ls /dev/sd*

Klaro dayon kana

/dev/sdb1 - ext4
/dev/sdb2 - Ρ‡Π°ΡΡ‚ΡŒ lvm
/dev/sda1 ΠΈ /dev/sdc1 - части Ρ€Π΅ΠΉΠ΄Π°
/dev/sda2 ΠΈ /dev/sdc2 - ΠΏΡ€ΠΎ Π½ΠΈΡ… Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ извСстно Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚

Gi-mount namo ang sdb1, klaro nga kini ang boot partition sa CentOS 6.

$ mkdir /mnt/sdb1 && mount /dev/sdb1 /mnt/sdb1

Dayag nga, moadto kami sa seksyon sa grub ug pangitaa ang una nga yawe didto - James191955Gosling sa usa ka dili kasagaran nga file.

2. Nagtuon kami sa pvs ug lvs, tungod kay nagtrabaho kami sa LVM. Nakita namon nga kinahanglan adunay 2 ka pisikal nga volume, ang usa wala makit-an ug nagreklamo bahin sa nawala nga uid. Nakita namon nga kinahanglan adunay 2 lohikal nga mga volume: gamut ug swap, samtang ang gamut partially nawala (ang P attribute sa volume). Dili mahimo ang pag-mount, nga usa ka kaluoy! Kinahanglan gyud namo siya.

Adunay 2 pa nga mga disk, among gitan-aw sila, gitigum ug gi-mount kini:

$ mdadm --examine --verbose --scan
$ mdadm --assemble --verbose --scan
$ mkdir /mnt/md127 && mount /dev/md127  /mnt/md127 

Atong tan-awon, atong makita nga kini ang boot partition sa CentOS 6 ug usa ka duplicate sa unsay anaa na. /dev/sdb1, ug dinhi na usab ang samang yawe - DennisBMacAlistairCRitchie!
Atong tan-awon kung giunsa kini pag-assemble /dev/md127.

$ mdadm --detail /dev/md127

Nakita namon nga kini kinahanglan nga gitigum gikan sa 4 nga mga disk, apan kini gitigum gikan sa duha /dev/sda1 ΠΈ /dev/sdc1, sila unta ang numero 2 ug 4 sa sistema. Nagtuo kami nga gikan sa /dev/sda2 ΠΈ /dev/sdc2 Mahimo ka usab mangolekta usa ka laray. Dili klaro kung ngano nga wala’y metadata sa kanila, apan kini naa sa konsensya sa admin, nga naa sa usa ka lugar sa Goa. Nagtuo kami nga kinahanglan adunay RAID10, bisan kung adunay mga kapilian. Gikolekta namo:

$ mdadm --create --verbose /dev/md0 --assume-clean --level=10 --raid-devices=4 missing /dev/sda2 missing /dev/sdc2

Atong tan-awon ang blkid, pvs, lvs. Among nadiskobrehan nga nakolekta namo ang pisikal nga gidaghanon nga kulang namo kaniadto.

Giayo dayon ang lvroot, gi-mount namon kini, apan una nga gi-aktibo ang VG:

$ vgchange -a y
$ mkdir /mnt/lvroot && mount /dev/mapper/vg_c6m1-lv_root /mnt/lvroot 

Ug naa ang tanan, lakip ang yawe sa direktoryo sa balay nga gamut - /root/sweet.

3. Gisulayan gihapon namo nga buhion ang among server aron kini magsugod sa normal. Ang tanan nga lohikal nga mga volume gikan sa among /dev/md0 (diin among nakit-an ang tanan) i-drag kini sa /dev/sdb2, diin ang tibuok server sa sinugdan nagtrabaho.

$ pvmove /dev/md0 /dev/sdb2
$ vgreduce vg_c6m1 /dev/md0

Gipalong namo ang server, kuhaa ang mga disk 1 ug 3, ibilin ang ikaduha, i-boot gikan sa Live CD/DVD ngadto sa Rescue. Pangitaa ang boot partition ug ibalik ang bootloader sa grub:

root (hd0,0)
setup (hd0)

Giputol namo ang boot disk ug malampuson nga nag-load, apan ang site dili molihok.

4. Adunay duha ka mga kapilian sa paglansad sa usa ka website: i-configure ang Apache gikan sa wala o gamita ang nginx nga adunay php-fpm nga na-configure nang daan:

$ /etc/init.d/nginx start
$ /etc/init.d/php-fpm start

Sa katapusan, kinahanglan nimong sugdan ang MySQL:

$ /etc/init.d/mysqld start

Dili kini magsugod, ug ang tubag anaa /var/log/mysql. Sa diha nga imong masulbad ang problema sa MySQL, ang site molihok, sa main page adunay usa ka yawe - RichardGCCMatthewGNUStallman! Karon kita adunay access sa 1C, ug ang mga empleyado makadawat sa ilang mga sweldo. Ug sama sa kanunay, daghan ka nga trabaho sa unahan aron matukod ang imprastraktura ug seguridad sa kompanya.

Mahimo usab namon nga ipaambit pag-usab ang usa ka lista sa mga libro nga nakatabang kanamo ug sa among mga partisipante sa pag-andam alang sa dula: linux.mail.ru/books.

Salamat sa imong pag-uban kanamo! Magpaabot sa mga anunsyo sa sunod nga mga duwa!

Source: www.habr.com

Idugang sa usa ka comment