Стручни тестови са разговора за посао – можете ли их решити из главе?

Ма колико знања и искуства имали са свиме и свачиме – кад одете на разговор за посао можете очекивати неочекивана питања – а при томе не мислим на најдебилнија дифолтна питања која је човек измислио на планети типа „Где видите себе у нашем тиму за 10 година“ или „Зашто бисмо запослили баш вас а не неког другог“ него мислим баш на строго стручна питања која би требали да знате и очекује се да знате.

Рецимо ја, по цео целцати дан висим над конзолом и mRemoteNG-ом или MobaXterm-у, по цео дан црн прозор испред мене ко да сам Саша Матић – одем на разговор на посао и паднем на питању: „Којом командом можеш прекопирати фајл xxx.txt из фолдера ААА у фолдер BBB а да остану оригиналне пермисије“. Једноставно, налети се на питања у стварима са којима никад нисте радили – ја рецимо никад нисам радио копирање а да ми требају оригиналне пермисије – а и кад би ми требало то урадио бих „man cp“ и видео бих који параметар пуца на то – а у овом случају ради се о параметру „p“ као „preserve“, па би оригинална команда била: cp -p /path/to/AAA/xxx.txt /path/to/BBB

У тестовима знања испод се налазе тестови за три позиције од којих сам ја био на тестирању за две – Системски програмер за Линукс, Јуниор Систем Администратор и Линукс Систем Администратор (нисам био на тесту за Јуниора него ми је пратилац блога послао тест путем Фејсбука) – са питањима од којих на нека питања немам одговор ни сад а нећу да гуглам у’инат јер ме није блам признати да нешто не знам па нека тако и остане и по цену јавног блама. У свим тестовима се тражило да се одговоре из главе и без коришћења икакве помоћи (man, Google, other). Питања су обележена онако како сам их радио и како сам их знао (без накнадног гуглања за овај текст) и црвеном бојом су обележена питања која нисам знао па ако неко има одговор нека јави да допишем – и да га означим као помагача и било би идеално да тај помагач не гугла него одговори из главе.

Иначе, гле парадокса ја Систем Администратор – најмање знања имам за позицију Јуниор Систем Администратор на коју се на сву срећу нисам ни пријавио него ми је пратилац блога послао цео тест – јер бих се на тестирању црвенео ко Ивица Дачић пред овалом сланине.

Намерно сам ставио да се за одговор мора кликнути у + како би покушали прво себе да преслишате….да ли бисте знали одговоре из главе, без подсећања и ичега другог.

Позиција:
Системски програмер за Линукс (shell)

На овом тесту сам покидао, све сам тачно одговорио – евентуално се може свести под пех да сам на пар места заборавио типа да ставим ‘fi’ или имао синтаксне грешке типа уместо ‘read’ ставио ‘reda’ – али то није био проблем за људе који су држали тест – битно им је било само да знају да постоји, како рекоше, исправан начин размишљања и познавања синтаксе. На тесту сте имали VirtualBox машину за потребе тестирања – али без PuTTY приступа (само куцкање директ у VirtualBox-у) – тако да је тест кода био апсолутно непрактичан…тако да сам све ударао из главе и без тестирања. Рок за завршетак овог теста је био 30 минута.

1) Направи shell скрипту које ће радити следеће
  • Улазни параметар: Enter folder name:
  • Испиши колико се фајлова налази укупно унутар тог фолдера
  • Направи фајл у којем ће се налазити резултат у human-friendly формату и испиши где се налази тај фајл
  • Испиши текст „Completed“
Одговор
read -p "Enter folder name: " FOLDERNAME
if [ -d ${FOLDERNAME} ]
then
	echo "There is `find ${FOLDERNAME} -type f | wc -l` files in ${FOLDERNAME}" | tee /tmp/output_file.txt
	echo "File with result is: /tmp/output_file.txt"
	echo "Completed"
else 
	echo "There is no folder with name ${FOLDERNAME}. Sorry, try again."
fi
2) Направи shell скрипту које ће радити следеће
  • Улазни параметар: Enter user:
  • Улазни параметар: Enter password:
  • Ући у MySQL са тим креденцијалима
  • Направити фајл у којем ће се налазити списак свих доступних база
  • Испиши текст „Complete“ ако је логин био успешан
Одговор
read -p "Enter user : "     DB_USER
read -p "Enter password : " DB_PASS
mysql -u ${DB_USER} -p"${DB_PASS}" -e "show databases;" > /tmp/output.txt 2>/dev/null

if [ $? = 0 ] ; then
echo "Complete"
else 
echo "Something goes wrong, does user ${DB_USER} with password ${DB_PASS} exists?"
fi
3) Направи shell скрипту које ће радити следеће
  • Направити фајл у којем ће се налазити у једној линији: Timestamp – Hostname:
Одговор
echo "`date` - `hostname`: " > /tmp/output_file.txt
4) Направи shell скрипту које ће радити следеће
  • Улазни параметар: Enter first name
  • Улазни параметар: Enter last name
  • Испиши на дисплеју: Hello Lastname, Firstname
  • Направи излазни фајл са резултатом
  • Испиши тренутни датум и време у human-friendly формату
Одговор
read -p "Enter first name: " FIRSTNAME
read -p "Enter last name: " LASTNAME
echo "Hello ${LASTNAME}, ${FIRSTNAME}" | tee /tmp/output_file.txt
echo "Today is: "$(date +'%A, %d.%m.%Y (%H:%M'\))
5) Направи shell скрипту које ће радити следеће
  • Прочитај све линије из фајла /root/test.txt
  • Прикажи сваку линију на дисплеју – са бројем линије
Одговор
grep -n "" /root/test.txt # :-)
6) Направи shell скрипту које ће радити следеће
  • Улазни параметар: Enter the Source Folder:
  • Улазни параметар: Enter the Destination Folder:
  • Направи Destination folder – ако не постоји
  • Прекопирај сав садржај из Source Folder-а у Destination Folder
Одговор
read -p "Enter the Source Folder: "      SOURCEFOLDER
read -p "Enter the Destination Folder: " DESTINATIONFOLDER

if [ ! -d "$SOURCEFOLDER" ]; then
  echo "There is no source folder: ${SOURCEFOLDER}"
  exit 1
fi

mkdir -p ${DESTINATIONFOLDER}
cp -r ${SOURCEFOLDER}/. ${DESTINATIONFOLDER}
7) Направи shell скрипту које ће радити следеће
  • Улазни параметар: Enter 1st number:
  • Улазни параметар: Enter 2nd number
  • Испиши који је број већи од та два
Одговор
read -p "Enter 1st number: " NO1
read -p "Enter 2nd number  " NO2

if [ ${NO1} -gt ${NO2} ] ; then
	echo "${NO1} is bigger"
	else
	echo "${NO2} is bigger"
fi
# Bonus :)
if [ ${NO1} -eq ${NO2} ] ; then
	echo "Numbers are equal"
fi

Позиција:
Јуниор Систем Администратор

Ово је тест који ми је послао један пратилац блога а ради се о једној великој фирми која послује на територији целе Србије. Пола од ових питања појма немам (као ово за Linksys) и да сам ишао на тестирање поштено бих се избламирао с обзиром да су питања за Јуниор мене и истерали би ме говњивом мотком из сале или канцеларије – дакле онде не бих ушао ни у задњих 10. Ако су ово питања за систем јуниора, могу мислити каква ли су тек питања за сениора.

1. Линукс команда којом се захтева нова IP адреса од DHCP сервера је:
Одговор
dhclient -r
2. Windows CLI komanda kojom se može proveriti kad ističe domen lozinka je:
Одговор
# Нисам најсигурнији пошто је питање поприлично конфузно, 
# али мислим да су мислили на ово
net user %USERNAME% /domain
3. Да ли знате који се сервиси могу повезати преко SSO или сте већ имали прилике да имплементирате тако нешто у Виндовс/Линукс окружењу?

Појма немам нити ћу да гуглам. Ако неко има одговор нека јави у коментару.

4. Предности Linksys WRT54GL рутера?

Појма немам нити ћу да гуглам. Ако неко има одговор нека јави у коментару. Претпостављам, пошто је у питању Linksys да је у питању ниска цена – али за конкретно овај модел – где знам. Такође могу претпоставити да пошто је у питању WRT, да се ради о фирмверу који се лако може прилагођавати локалним потребама.

5. Која је главна предност најновије верзије Самба севера?

Појма немам нити ћу да гуглам. Ако неко има одговор нека јави у коментару. Овде бих налупао дифолтне ствари, типа повећана безбедност сервера кроз нове иницијалне поставке и слично

6. Подвуците оно што мислите да је тачно у подешавању радне станице:
IP: 192.168.255.10 NETMASK:255.255.255.255 GATEWAY:192.168.255.1 DNS: 192.168.255.1
Одговор

IP: 192.168.255.10 NETMASK:255.255.255.255 GATEWAY:192.168.255.1 DNS: 192.168.255.1

7. Дефаулт портови:
SSH:__ DNS:__ HTTP:__ SSL:__ VNC:__ RDP:__ PPTP:__ L2TP:__ FTP:__
Одговор
SSH:22 DNS:53 HTTP:80 SSL:443 VNC:5901 RDP:3389 PPTP:1723 L2TP:1701 FTP:21

8. Која је команда за креирање перманентних линкова у Линуксу а која за брисање истих?

Искрено, појма немам шта су мислили под перманентни линк (зато сам обележио као да не знам), претпостављам да су мислили заправо на симболички линк (symlink)…ако је то онда је ln -s /source/file /destination/link, али ако су мислили на хардлинкове онда исто ово само без парамтетра „l“. Брисање се ради са: rm /destination/link

9. Шта је WPAD?
Одговор
Фајл који обезбеђује аутоматску конфигурацију за коришћење прокси сервера на клијентским уређајима.
10. Windows CLI команда за освежење Групних полиса:
Одговор
gpupdate или се може форсирати са: gpupdate /force
11. Препоручене команде за update Убунту система:
Одговор
sudo apt-get update
sudo apt-get upgrade
12. Glassfish је:
Одговор

Апликациони сервер

13. Где се налази дифолт профил на Линукс рачунару?
Одговор

/etc/profile

14. OpenVPN прави проблем код корисника без администраторских права. Шта је решење:
Појма немам, претпостављам да има неко упутство на OpenVPN howto-у (прогуглао сам касније, има али дефинитивно није за ‘из главе’).
15. Након инсталације ЦентОС минимал сервера autocomplete функција не ради. Како се укључује:
Одговор

yum install bash-completion (ово сам прогуглао, морао сам – јер никад у животу нисам имао овај проблем а инсталирао сам једно билион ЦентОС-а). Углавном и да ми се деси ово у раду – прогуглао бих, али пошто је тест ‘из главе’ – пао бих на овом питању па сам га и обележио као ‘не знам’. Зашто се овакве ствари уопште траже из главе дођавола?

16. ЦентОС команда за инсталирање засебног RPM пакета када је потребно инсталирати и пропратне пакете:
Одговор

yum localinstall paket.rpm

17. Како се креира безбедна веза између DHCP и DNS сервера на Линукс серверу:

Појма немам нити сам уопште и разумео питање, нити ћу да гуглам. Ако неко има одговор нека јави у коментару.

18. Разлика између Thin и Thick резервисања меморијског простора код VMware ESXi сервера:

Први пут чујем за Thick и Thin меморијски простор, знам за storage providing. Ако је по истој филозофији, Thick заузума 100% додељеног RAM-а без обзира колико се користи док Thin заузима само онолико колико се користи на хипервизору. Додуше, резервисање меморије се ради на други начин, тако да – не знам одговор на ово питање из главе и обележавам га црвеном (могуће и да је трик питање) тако да ако имате одговор – јавните, углавном нећу да гуглам.

19. Укратко описати:
$IPTABLES -t nat -A PREROUTING -p tcp --dport 5900 -i $INTERNET_if DNAT --to 192.168.10.151
Одговор

Port forwarding на 192.168.10.151:5900

20. Којом командом је могуће едитовати документ отворен VI едитором а којом се документ затвара са чувањем измена?
Одговор

Тастер инсерт или мало и.
:wq! или :x!

Позиција:
Линукс Систем Администратор

На овом тесту сам се поштено обрукао, онако – за све паре. Иако сам знао сва питања, мозак је био заблокиран јер сам на тестирање дошао после целоноћног рада на неком јебеном проблему али успешно сређеном на крају и одмах после и прве смене на послу (очи, мозак, кичма спаљени) тако да, кад сам одлазио са разговора рекао сам људима „Збогом“ јер изговора нема.

Касније сам добио фидбек из те фирме да људима уопште и није било битно да се зна цела синтакста из главе већ само ‘знаш ли да приступиш проблему и знаш ли који се програм или команда ту уопште тражи’ – рецимо на питању „Која се команда користи на компјутеру А да би се фајл са компјутера Б прекопирао на компјутер Ц“ – њима је било довољно само поменути scp и основно синтаксу тима ‘scp фајл блабла’, не и цела команда.

Овде ћу искуцати тачна питања (сам сад одморан, свеж и све знам) али ћу обележити у одговорима шта сам знао а шта не из главе.

Прекопирај цео садржај фолдера ААА у фолдер BBB али да остану оригиналне пермисије
Одговор
# Nisam znao sintaksu iz glave, tj ovo 'p'
cp -pa AAA/. BBB/
Од чега је скраћеница selinux?
Одговор
Security-Enhanced Linux (ово сам знао из главе)
Направи фајл од 250MB
Одговор
dd if=/dev/zero of=filename bs=1M count=250
fallocate -l 250m filename 
Како пронаћи све фајлове старије од 30 дана а да су већи од 20MB па их обрисати
Одговор
# Нисам могао да се сетим овог парамтетра -size +10М, остало сам знао
find /path/ -type f -mtime +30 -size +10M -exec rm -f {} \;
Како једном командом - са компјутера 192.168.0.1 прекопирати фолдер пун фајлова са компјутера 192.168.0.2 - на компјутер 192.168.0.3
Одговор
# Нисам могао да се сетим пуне синтаксе јер ово никад нисам радио
# Најдаље што сам радио је scp сомеfile user@IP:/path/то/фолдер
scp user@192.168.0.2:/path/to/folder/* user@192.168.0.3:/path/to/folder/
Додао сам ти нови диск...прошири њиме постојећи LVM (чак сам направио на блогу и упутство из овога али мозак блок). Испиши све кораке и синтаксу.

Ово већ нисам знао напамет иако сам радио милион пута. Знао сам напамет онај fdisk део и како гласе команде pvcreate, lvcreate… тако да сам одговорио да не знам напамет и јебига. Иначе одговор на ово питање сам и сам својевремено написао на блогу, линк овде

Како се зове daemon који пуни /var/log/messages?

Ово је једино питање које стварно нисам знао, а одговор је: syslogd

Како члановима групе dev дати read и execute привилегије над фолдером ccccc.
Одговор
# Нисам знао из главе иако сам знао да је преко ACL-а. Умор урадио своје
setfacl -m g:dev:rx /ccccc/
Наведи све информације и структуру из /etc/passwd
Одговор

Username, Pasword (is set), UID, GID, Info, home folder и који shell користи дифолтно. Овде сам заборавио на Password и инфо у фајлу иако знам шта су кад отворим фајл – тако да се одговор води као непотпун.

У ком фајлу у Томкету се дефинише порт а у који фајл је главни за праћење логова
Одговор

server.xml и catalina.out (ово сам знао)

У ком фајлу у Oracle-у се могу наћи грешке које се јаваљају у раду Oracle-а
Одговор

alert.log – али ми и даље није јасно какве везе ово питање има са Линукс администрацијом.

Који је дифолтни порт на којем ради Томкет и на која два начина се он може променити?
Одговор

Дифолтно ради на 8080 и може се променити у server.xml фајлу или се поставити port forward.

У ком фајлу се налази податак о лозинки корисника?
Одговор

/etc/passwd (да ли је лозинка сетована) и /etc/shadow (сама лозинка али у шифрованом формату)

Може ли swap да се прошири а да се не рестартује сервер?
Одговор

Може, дода се засебни swap фајл са толико-и-толико величине и са mkswap и swapon дода без рестарта а овај инфо се дода и у fstab (offtopic – има овде како)

Којом командом можеш испратити оптерећење сервера и лоцирати шта га зеза?
Одговор

top, wmstat, sar за историјско праћење уназад ако је инсталиран sysstat.

Кад се напуне 100% и RAM и SWAP, шта се тад дешава?
Одговор

Систем покреће oom_kill_process који убија тешке процесе како би ослободио RAM за нормалан рад система.

Чему служи фајл hosts.allоw?
Одговор

Дефинише се одакле се ком сервису на систему може прићи (ако је у hosts.deny постављено АLL : АLL).
(овде сам побркао /etc/hosts и /etc/hosts.allow па сам дао неки одговор који апсолутно нема везе са hosts.allоw).