NgoMashi 25 savula ukubhaliswa
- U-Alexander Teldekov wathatha indawo yokuqala.
U-Alexander wazitshela ukuthi ungumphathi wesistimu ojwayelekile kakhulu. Uhlala eVolgograd, ubelokhu elawula amasistimu ahlukahlukene afana ne-Unix iminyaka engaba ngamashumi amabili. Ngikwazile ukusebenza kubahlinzeki be-inthanethi, ibhange, kanye nesididiyeli sesistimu. Manje usebenza ukude enkampanini encane, esebenza nengqalasizinda yamafu yekhasimende elikhulu lakwamanye amazwe. Uthanda ukufunda nokulalela umculo. Mayelana nomdlalo, u-Alexander wathi uwuthanda umdlalo uwonke, uyayithanda imisebenzi enjalo. Phakathi nenhlolokhono kwenye yezinkampani ngenza into efanayo ne-Hackerrank, kwakuthakazelisa. - Indawo yesibili - Roman Suslov.
Inoveli evela eMoscow. Uneminyaka engu-37 ubudala. Usebenza njengonjiniyela we-Linux/Unix kwaJet Infosystems. Emsebenzini, kufanele ngilawule futhi ngixazulule izinhlelo ze-Linux/Unix + SAN. Izithakazelo zihlukahlukene: Izinhlelo ze-Linux, izinhlelo, ubunjiniyela obuhlehlayo, ukuphepha kolwazi, i-Arduino. Mayelana neGame Roman yaphawula ukuthi uwuthanda umdlalo usuwonke. βNgelula ubuchopho bami kancane futhi ngahlaba ikhefu empilweni yansuku zonke empunga yomsebenzi wansuku zonke. π Ngingathanda ukuba neminye imisebenzi, ngaphandle kwalokho ngaphambi kokuba ngithole isikhathi sokuyinambitha, umdlalo wawusuphelile. " - Okwesithathu - alex3d.
U-Alex uhlala eMoscow futhi usebenza ekuthuthukisweni kwesoftware. "Ngiyabonga ngomncintiswano, bekujabulisa ukuhlola amakhono ami e-google-fu."
Futhi kusezingeni labadlali abayi-10 abahamba phambili:
- Evgeniy Saldayev
- UMark Mokhnachevsky
- Konstantin Konosov
- UPavel Sergeev
- UVladimir Bovaev
- Ivan Bubnov
- Pavlo Klets
Siyaqonda ukuthi kunezinketho eziningi zokuxazulula zonke izinkinga zethu; ezinye zezixazululo ezingaba khona zichazwe ngezansi.
1. Isigaba sokuqala
Sayibiza ngokuthi "Ingabe ungumqondisi ngempela?", Njengoba umsebenzi wawulula - ukulungisa isevisi yesibani esifudumele.
1.1. Amaqiniso Athakazelisayo:
Abadlali ababili bathole ukhiye wokuqala emizuzwini engu-15 yokuqala yomdlalo, kwathi ngehora lokuqala sibe nabaholi abathathu abaphothule umsebenzi.
1.2. Ukuzivocavoca
Uhambe wayosebenza enkampanini lapho isikhathi eside kungekho uchwepheshe wezobuchwepheshe bolwazi. Ngaphambi kokuba uqale ukubeka izinto ngokuhlelekile, udinga ukuxazulula inkinga evuthayo evimbela umsebenzi wehhovisi.
Owesifazane ohlanzayo ubambe intambo yamandla yekhabethe leseva nge-mop. Amandla abuyiselwe, kodwa iwebhusayithi ebaluleke kakhulu ayikasebenzi. Iwebhusayithi ibalulekile ngoba inkampani ayikhathazeki kakhulu mayelana nokuphepha kolwazi, futhi ekhasini eliyinhloko lalokhu ungathola ngombhalo ocacile iphasiwedi yomlawuli yekhompyutha ye-CEO.
Ngolunye usuku iphasiwedi yashintshwa, kodwa wonke umuntu wakhohlwa entsha, umqondisi akakwazi ukusebenza. Kunamahlebezi okuthi bekunokhiye abengeziwe kulo mshini abangasisiza siqonde ikhophi eyisipele yamadokhumenti okubalwa kwezimali.
Wonke umuntu ulindele ukuxazululwa ngokushesha kodaba!
1.3. Isixazululo
1. Okokuqala, udinga ukushintsha iphasiwedi yempande emshinini we-virtual ukuze ukwazi ukuyifinyelela. Uma siqala, siyaqaphela ukuthi lena Ubuntu 16.04 Server.
Ukusetha kabusha iphasiwedi yempande, siqala kabusha umshini, lapho silayisha, okwamanje imenyu ye-grub iboniswa, hamba ukuhlela into ye-Ubuntu ngenkinobho ethi "e". Hlela umugqa we-linux, ungeze ekugcineni init=/bin/bash
. Silayisha nge-Ctrl+x, sithola i-bash. Faka kabusha impande nge-rw, shintsha iphasiwedi:
$ mount -o remount,rw /dev/mapper/ubuntu--vg-root
$ passwd
Ungakhohlwa mayelana nokuvumelanisa, qalisa kabusha.
2. Isimo sithi iseva yethu yewebhu ayisebenzi, bheka:
$ curl localhost
Not Found
The requested URL / was not found on this server.
Apache/2.4.18
Okusho ukuthi, empeleni, i-Apache iyasebenza, kodwa iphendula ngekhodi 404. Ake sibheke ukulungiselelwa:
$ vim /etc/apache2/sites-enabled/000-default.conf
Kukhona nokhiye lapha - uStevenPaulSteveJobs.
Ihlola indlela /usr/share/WordPress
- ayikho into enjalo, kodwa ikhona /usr/share/wordpress
. Hlela ukulungiselelwa bese uqala kabusha i-Apache.
$ systemctl restart apache2
3. Zama futhi, sithola iphutha:
Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /usr/share/wordpress/wp-includes/wp-db.php on line 1488
Isizindalwazi asisebenzi?
$ systemctl status mysql
Active: active (running)
Kwenzenjani? Kudingeka sikuqonde. Ukuze wenze lokhu, udinga ukufinyelela ku-MySQL, njengoba kuchazwe ku skip-grant-tables
Π² /etc/mysql/mysql.conf.d/mysqld.cnf
. Kukhona nokhiye lapha - AugustaAdaKingByron.
Ukulungisa amalungelo omsebenzisi 'wp'@'localhost'
. Sethula i-MySQL, siyenze ifinyeleleke ngenethiwekhi, sibeka amazwana kunketho ekulungiseleleni skip-networking
.
4. Ngemva kwalezi zinyathelo, iseva yewebhu iqala, kodwa isayithi namanje ayisebenzi ngoba
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
Sihlela amalungelo efayela.
$ chmod 644 /usr/share/wordpress/wp-content/themes/twentysixteen/footer.php
Sivuselela ikhasi, siya kusayithi futhi sithole ukhiye - BjarneStroustrup! Sithole okhiye bobathathu, umqondisi wethu angasebenza, sisuse ukubethela amafayela wokubala. Wonke umuntu ujabule, futhi unomsebenzi omningi phambi kwakho wokusetha ingqalasizinda, izipele nokuphepha enkampanini.
2. Isigaba sesibili
Kwakudingeka ukuxazulula inkinga yokuqoqa izibalo. Wonke umuntu uyazithanda izibalo - ubani oyisebenzisayo, kuphi futhi ngamaphi amanani. Siqhamuke necala bonke onjiniyela abangahlangana nalo ngandlela thize empilweni.
2.1. Amaqiniso Athakazelisayo
Omunye wabadlali bethu ufake ukhiye olungile emizuzwini yokuqala eyi-10 yomdlalo, futhi phakathi nehora lokuqala sibe nomholi oqedele umsebenzi.
2.2. Ukuzivocavoca
Uhambe wayosebenza enkampanini, abaphathi beza kuwe bacela ukuthi uthole ukuthi izincwadi zithunyelwa kubani zivela e-Afrika. Sidinga ukwakha amakheli aphezulu angu-21 abamukeli ngokusekelwe kuwo. Izinhlamvu zokuqala zamakheli abamukeli ziwukhiye. Into eyodwa: iseva yemeyili okwathunyelwa ngayo izinhlamvu ayilayishi. Wonke umuntu ulindele ukuxazululwa ngokushesha kodaba!
2.3. Isixazululo
1. Iseva ayiqalisi ngenxa yokwahlukanisa okungekho ku-swap ku-fstab; lapho ilayisha, isistimu izama ukuyikhweza bese iphahlazeka. Indlela yokuqalisa?
Landa isithombe, silande i-CentOS 7, ibhuthi kusuka ku-Live CD/DVD (Ukuxazulula inkinga -> Rescue), faka uhlelo, hlela /etc/fstab
. Ngokushesha sithola ukhiye wokuqala - GottfriedWilhelm11646Leibniz!
Dala ukushintshwa:
$ lvcreate -n swap centos -L 256M
$ sync && reboot
2. Njengenhlalayenza, ayikho iphasiwedi, udinga ukushintsha iphasiwedi yempande emshinini we-virtual. Sesivele sikwenzile lokhu emsebenzini wokuqala. Siyashintsha futhi singene ngempumelelo kuseva, kodwa iqala kabusha ngokushesha. Iseva igcwele kakhulu ngesivinini esinjalo kangangokuthi awunaso ngisho nesikhathi sokubheka zonke izingodo ngokucophelela. Indlela yokuqonda ukuthi kwenzekani?
Futhi siqala kabusha kusuka ku-livecd, sifunda ngokucophelela izingodo zesistimu futhi, uma kwenzeka, sibheke ku-cron, kusukela esikhathini esinjalo. Lapho sithola inkinga kanye nokhiye wesibili - Alan1912MathisonTuring!
Udinga ukungena /etc/crontab
susa noma ubeke amazwana umugqa echo b > /proc/sysrq-trigger
.
3. Ngemva kwalokho iseva ilayishiwe, futhi ungakwazi ukuqedela umsebenzi wabaphathi: βAthini amakheli ase-Afrika?β Lolu lwazi ngokuvamile lutholakala emphakathini. Ungathola lolu lwazi ku-inthanethi usebenzisa amagama athi βip address africaβ, βgeoip databaseβ. Ukuze uxazulule inkinga, ungasebenzisa isizindalwazi sokusabalalisa ikheli esitholakala mahhala (geoip). Sisebenzise i-database njengendlela evamile
Ake sizame ukuxazulula inkinga yethu sisebenzisa izinsiza zesistimu ye-Linux kuphela, kodwa ngokuvamile ingaxazululwa ngezindlela eziningi: kusetshenziswa izinsiza zokuhlunga umbhalo nokusebenzisa imibhalo ngezilimi ezihlukahlukene zokuhlela.
Okokuqala, sizovele sithole amapheya "womamukeli womthumeli" kulogi yemeyili. /var/log/maillog
(ake sakhe itafula labamukeli be-imeyili - i-IP yomthumeli). Lokhu kungenziwa ngomyalo olandelayo:
$ 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
Futhi ngaphambi kokuba siqhubeke nokuhlanganisa isizindalwazi samakheli ase-Afrika, ake sibheke amakheli e-IP aphezulu abathumeli.
$ 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]
Phakathi kwabo bonke, abamukeli bokuqala abathathu abavela phezulu bagqama ngokusobala ngokwenani lezinhlamvu. Uma uhlanganisa amakheli e-IP wabathumeli abathumele kumakheli ukusuka kulokhu 3 okuphezulu, uzoqaphela ukugqama okucacile kwamanethiwekhi athile:
$ 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
Iningi lamanethiwekhi angu-105/8, 41/8, 196/8,197/8 abelwe i-AFRINIC - enye yeziyingi zezifunda ezinhlanu zokubhalisa i-inthanethi esabalalisa izinsiza ze-inthanethi. I-AFRINIC isabalalisa indawo yamakheli kuyo yonke i-Afrika. Futhi u-41/8 ubhekisela ku-AFRINIC ngokuphelele.
https://www.nic.ru/whois/?searchWord=105.0.0.0
https://www.nic.ru/whois/?searchWord=41.0.0.0
Ngakho-ke, impendulo yenkinga, empeleni, ikulogi ngokwayo.
$ 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]
Kulesi sigaba sithola iyunithi yezinhlamvu "LinuxBenedictTorvadst".
Ukhiye olungile: "LinusBenedictTorvalds".
Iyunithi yezinhlamvu ewumphumela iqukethe ukuthayipha ngokuhlobene nokhiye olungile ezinhlamvu ezi-3 zokugcina. Lokhu kungenxa yokuthi amanethiwekhi esiwakhethile awazinikele ngokuphelele emazweni ase-Afrika nasendleleni ama-imeyili asakazwa ngayo ngamakheli e-IP kulogi yethu.
Ngokucaciswa okwanele kwamanethiwekhi amakhulu kakhulu abelwe amazwe ase-Afrika, impendulo enembayo ingatholakala:
$ 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]
Inkinga ingaxazululwa nangenye indlela.
Landa i-MaxMind, yikhiphe, futhi imiyalo emithathu elandelayo nayo ixazulula inkinga yethu.
$ 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
Ngandlela thize, ekugcineni sazibala izibalo, futhi abaphathi bathola idatha ababeyidinga ukuze basebenze!
3. Isigaba sesithathu
Isigaba sesithathu sifana nesokuqala - udinga futhi ukulungisa isevisi yesibani esifudumele, kodwa konke kuyinkimbinkimbi kunomsebenzi wokuqala.
3.1. Amaqiniso Athakazelisayo
Emizuzwini yokuqala eyi-15, abadlali abathathu bathole ukhiye wokuqala; amahora ama-2 nemizuzu engama-20 ngemuva kokuqala kwesiteji, ophumelele wethu uwuqedile umsebenzi.
3.2. Ukuzivocavoca
Uhambe wayosebenzela inkampani lapho wonke amadokhumenti enkampani egcinwa kuseva yangaphakathi ye-Wiki. Ngonyaka odlule, unjiniyela wayala amadiski amasha angu-3 eseva ngaphezu kweyodwa ekhona, ephikisana ngokuthi ukuze uhlelo lukwazi ukubekezelela amaphutha, ama-disks adinga ukufakwa kuhlobo oluthile lwama-array. Ngeshwa, emasontweni ambalwa ngemva kokufakwa kwabo, unjiniyela waya eholidini eNdiya futhi akazange abuyele.
Iseva isebenze ngaphandle kokwehluleka iminyaka eminingana, kodwa ezinsukwini ezimbalwa ezedlule inethiwekhi yenkampani yagqekezwa. Ngokwemiyalelo, abasebenzi bezokuphepha bakhiphe amadiski kuseva futhi bawathumele kuwe. Ngesikhathi sokuthutha, idiski eyodwa ilahlekile ngendlela engenakulungiseka.
Sidinga ukubuyisela ukusebenza kwe-Wiki; okokuqala, sinentshisekelo kokuqukethwe kwamakhasi e-wiki. Ucezu oluthile lombhalo obukwelinye lamakhasi ale wiki iphasiwedi yeseva ye-1C futhi ludingeka ngokushesha ukuze uluvule.
Ngaphezu kwalokho, endaweni ethile emakhasini e-wiki noma kwenye indawo bekunamaphasiwedi eseva yelogi kanye neseva yokubhekwa kwevidiyo, okungafiseleka ukuba ilulame; ngaphandle kwabo, uphenyo lwesigameko alunakwenzeka. Njengenjwayelo, silindele ukuxazululwa ngokushesha kodaba!
3.3. Isixazululo
1. Sizama ukuvula elinye ngalinye kumadiski esinawo futhi yonke indawo sithola umyalezo ofanayo:
No bootable medium found! System halted
Udinga ukuqala kokuthile. Ukuqalisa kusuka ku-Live CD/DVD (Ukuxazulula inkinga -> Rescue) kuyasiza futhi. Lapho silayisha, sizama ukuthola ukwahlukanisa kwe-boot, asikwazi ukuyithola, sigcina sisegobolondweni. Sizama ukufunda ukuthi kwenziwani futhi kanjani ngamadiski. Kuyaziwa ukuthi bathathu. Kunamathuluzi amaningi alokhu kunguqulo yesi-7 ye-CentOS, lapho kunemiyalo blkid
noma lsblk
, ezisibonisa lonke ulwazi mayelana namadiski.
Kanjani futhi senzani:
$ ls /dev/sd*
Kusobala ngokushesha ukuthi
/dev/sdb1 - ext4
/dev/sdb2 - ΡΠ°ΡΡΡ lvm
/dev/sda1 ΠΈ /dev/sdc1 - ΡΠ°ΡΡΠΈ ΡΠ΅ΠΉΠ΄Π°
/dev/sda2 ΠΈ /dev/sdc2 - ΠΏΡΠΎ Π½ΠΈΡ
Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ
Sifaka i-sdb1, kuyacaca ukuthi lesi yisigaba sokuqalisa se-CentOS 6.
$ mkdir /mnt/sdb1 && mount /dev/sdb1 /mnt/sdb1
Ngokusobala, siya esigabeni se-grub futhi sithola ukhiye wokuqala lapho - uJames191955Gosling kufayela elingajwayelekile.
2. Sifunda ama-pv nama-lvs, njengoba sisebenza ne-LVM. Siyabona ukuthi kufanele kube namavolumu angama-2, eyodwa ayitholakali futhi ikhononda nge-uid elahlekile. Siyabona ukuthi kufanele kube namavolumu anengqondo angu-2: impande kanye nokushintshaniswa, kuyilapho impande ilahleka kancane (imfanelo engu-P yevolumu). Akunakwenzeka ukukhuphuka, okudabukisayo! Siyamdinga ngempela.
Kunamadiski angu-2 ngaphezulu, siyawabuka, siwahlanganise futhi siwakhweze:
$ mdadm --examine --verbose --scan
$ mdadm --assemble --verbose --scan
$ mkdir /mnt/md127 && mount /dev/md127 /mnt/md127
Sibheka, siyabona ukuthi lokhu ukuhlukaniswa kwe-boot kwe-CentOS 6 kanye nempinda yalokho osekuvele kuvuliwe. /dev/sdb1
, futhi lapha futhi ukhiye ofanayo - DennisBMacAlistairCRitchie!
Ake sibone ukuthi ihlanganiswe kanjani /dev/md127
.
$ mdadm --detail /dev/md127
Siyabona ukuthi bekufanele ihlanganiswe kusuka kumadiski angu-4, kodwa yahlanganiswa kusuka kokubili /dev/sda1
ΠΈ /dev/sdc1
, bekufanele kube izinombolo 2 no-4 ohlelweni. Sicabanga ukuthi kusuka /dev/sda2
ΠΈ /dev/sdc2
Ungakwazi futhi ukuqoqa amalungu afanayo. Akucaci ukuthi kungani ingekho imethadatha kuzo, kodwa lokhu kukunembeza womphathi, osendaweni ethile e-Goa. Sicabanga ukuthi kufanele kube ne-RAID10, nakuba zikhona izinketho. Siqoqa:
$ mdadm --create --verbose /dev/md0 --assume-clean --level=10 --raid-devices=4 missing /dev/sda2 missing /dev/sdc2
Sibheka i-blkid, pvs, lvs. Sithola ukuthi siqoqe umthamo obonakalayo ebesiwuntule ngaphambilini.
I-lvroot yalungiswa ngokushesha, siyikhweza, kepha qala i-VG isebenze:
$ vgchange -a y
$ mkdir /mnt/lvroot && mount /dev/mapper/vg_c6m1-lv_root /mnt/lvroot
Futhi konke kukhona, kufaka phakathi ukhiye kumkhombandlela wasekhaya wempande - /root/sweet.
3. Sisazama ukuvuselela iseva yethu ukuze iqale ngokujwayelekile. Wonke amavolumu anengqondo avela kuwethu /dev/md0
(lapho sithole khona yonke into) idonsele kuyo /dev/sdb2
, lapho yonke iseva iqale yasebenza khona.
$ pvmove /dev/md0 /dev/sdb2
$ vgreduce vg_c6m1 /dev/md0
Sicisha iseva, sikhipha amadiski 1 no-3, sishiye elesibili, siqale sisuka ku-Live CD/DVD siye ku-Rescue. Thola ukuhlukaniswa kwe-boot bese ubuyisela i-bootloader ku-grub:
root (hd0,0)
setup (hd0)
Sidabula i-boot disk futhi silayisha ngempumelelo, kodwa isayithi alisebenzi.
4. Kunezinketho ezimbili zokuqalisa iwebhusayithi: lungiselela i-Apache kusukela ekuqaleni noma sebenzisa i-nginx ene-php-fpm esivele ilungiselelwe kusengaphambili:
$ /etc/init.d/nginx start
$ /etc/init.d/php-fpm start
Ekugcineni, udinga ukuqala i-MySQL:
$ /etc/init.d/mysqld start
Ngeke iqale, futhi impendulo ilele /var/log/mysql
. Ngokushesha nje lapho uxazulula inkinga nge-MySQL, isayithi lizosebenza, ekhasini eliyinhloko kuzoba nokhiye - RichardGCCMatthewGNUStallman! Manje sesiyakwazi ukufinyelela ku-1C, futhi abasebenzi bazokwazi ukuthola amaholo abo. Futhi njengenjwayelo, unomsebenzi omningi phambili wokusungula ingqalasizinda nokuphepha enkampanini.
Singaphinda futhi sabelane ngohlu lwezincwadi ezisize thina nabahlanganyeli bethu ukulungiselela igeyimu:
Siyabonga ngokuba nathi! Hlala ubukele izimemezelo zemidlalo elandelayo!
Source: www.habr.com