Linux
Linux är ett Unix-liknande operativsystem som till största delen, och i några varianter helt, består av fri programvara.
Contents
- 1 Tools
- 2 Distar
-
3 Tips'n'trix
- 3.1 Skapa ny disk
- 3.2 Expandera disk
- 3.3 Skapa egna selinux med grep och audit2allow.
- 3.4 Ansluta till trådlöst nätverk.
- 3.5 Ta reda på om det är något lokalt prestanda eller kapacitetsproblem med maskinen.
- 3.6 Ta reda på publik IP du har
- 3.7 Testa hårdvaruaccelerering
- 3.8 Speedtest mot internet med cli
- 3.9 Lista filer efter storlek
- 3.10 Summera alla filer i en mapp och printa storleken.
- 3.11 Restricted Shell
- 3.12 Process Run Time
- 3.13 Skydda mot SYN flood
- 3.14 Parallellpinga IP-adresser från fil
- 3.15 Kolla vilken tjänst som vanligtvis ligger på vilken port, t.ex.
- 3.16 Kör en filesystem check vid nästa uppstart
- 3.17 Kolla distinfo
- 3.18 Titta på senaste uppstart grafiskt
- 3.19 Kolla vad ett kommando kör för systemfrågor. Väldigt användbart vid felsökning.
- 3.20 Kör ett kommando tex 1 gång i sekunden. (Default 2 sekunder)
- 3.21 Kopiera directory-struktur utan att kopiera filer
- 3.22 Lista hårddiskar, partitioner och RAID.
- 3.23 Simpelt prestandatest av hårddiskar
- 3.24 Packa upp initrd.
- 3.25 Packa ner initrd.
- 3.26 Byt namn på alla filer och mappar från uppercase till lowercase i en mapp.
- 3.27 Sök efter en text i alla filer i en mapp
- 3.28 Kollar antal dagar det är kvar på ett certifikat
- 3.29 Räkna ut option 121 för DHCP
- 4 Intervjufrågor
Tools
- Apt
- Bash
- Cron
- Dd
- Dialog
- DNF
- Dnstracer
- Dumpcap
- EFI
- FirewallD
- Frandom
- Hdparm
- Iperf
- IPMI
- Iproute2
- Iptables
- Keepalived
- Mdadm
- Nameif
- NTP
- Psql
- Rsync
- Scapy
- System storage manager
- Systemd
- Tcpdump
- Tmux
- Tree
Distar
Tips'n'trix
Skapa ny disk
Skapa en volume group av en disk.
vgcreate cs_log02_data /dev/sdb
Skapa en logical volume av volume groupen du skapa.
lvcreate -l 100%FREE -n logs cs_log02_data mkfs.xfs /dev/cs_log02_data/logs
Skapa en folder och mounta nya disken.
mkdir -p /data/logs mount /dev/cs_log02_data/logs /data/logs
Se till att mounten är permanenet när servern rebootar.
echo "/dev/mapper/cs_log02_data-logs /data/logs xfs defaults 0 0" >> /etc/fstab
Expandera disk
Scanna om disken du vill expandera efter du utökat i exempelvis vmware. echo 1>/sys/class/block/sdc/device/rescan fdisk -l kolla så den är utökad Utöka PVn pvresize /dev/sdc utöka lv lvextend -l +100%FREE /dev/mapper/datavg expandera volymen med. xfs_growfs /dev/mapper/datavg
Skapa egna selinux med grep och audit2allow.
Kommando
cat /var/log/audit/audit.log |grep postgres_expo |grep denied |audit2allow
Resultat som visar vad det är du skapar en regel på
#============= init_t ============== allow init_t postgresql_port_t:tcp_socket name_connect;
Kommando
cat /var/log/audit/audit.log |grep postgres_expo |grep denied |audit2allow -M postgres
Resultat som bara visar vad du skall köra för att implementera selinux regeln ovan
******************** IMPORTANT *********************** To make this policy package active, execute: semodule -i postgres.pp
kommando
semodule -i postgres.pp
Ansluta till trådlöst nätverk.
nmcli d wifi connect <SSID> password <password> iface wlan0
Ta reda på om det är något lokalt prestanda eller kapacitetsproblem med maskinen.
Finns på Github och PyPI
glances
Ta reda på publik IP du har
wget http://ipinfo.io/ip -qO -
Testa hårdvaruaccelerering
openssl speed -evp AES256
Speedtest mot internet med cli
wget -O speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py chmod +x speedtest-cli ./speedtest-cli --simple
Lista filer efter storlek
for i in T G M K; do du -hsx * | grep "[0-9]$i\b" | sort -nr; done 2>/dev/null
Summera alla filer i en mapp och printa storleken.
du -hs *
Restricted Shell
useradd[mod] -s /usr/sbin/scponly user1
Process Run Time
ps -p PID -o etime=
Skydda mot SYN flood
ss -a | grep SYN-RECV | awk '{print $4}' | awk -F":" '{print $1}' | sort | uniq -c | sort -n
sudo netstat -antp | grep SYN_RECV|awk '{print $4}'|sort|uniq -c | sort -n
Parallellpinga IP-adresser från fil
echo $(cat iplist.txt) | xargs -n 1 -P0 ping -w 1 -c 1
Kolla vilken tjänst som vanligtvis ligger på vilken port, t.ex.
cat /etc/services | grep mysql
Kör en filesystem check vid nästa uppstart
touch /forcefsck
Kolla distinfo
lsb_release -a eller cat /etc/*release
Titta på senaste uppstart grafiskt
systemd-analyze plot > plot.svg
Kolla vad ett kommando kör för systemfrågor. Väldigt användbart vid felsökning.
strace <kommando>
Kör ett kommando tex 1 gång i sekunden. (Default 2 sekunder)
watch -n 1 date
Kopiera directory-struktur utan att kopiera filer
rsync -a -f"+ */" -f"- *" source/ destination/
Lista hårddiskar, partitioner och RAID.
lsblk
Simpelt prestandatest av hårddiskar
dd if=/dev/zero of=(fil på disken/raiden) bs=1G count=1 oflag=dsync
Packa upp initrd.
gunzip -dc ../initrd | cpio -idmuv
Packa ner initrd.
find . -print |cpio -o -H newc | xz --format=lzma > ../initrd
Byt namn på alla filer och mappar från uppercase till lowercase i en mapp.
Upper till lower.
for i in *; do mv "$i" "$(echo $i|tr A-Z a-z)"; done
Lower till upper.
for i in *; do mv "$i" "$(echo $i|tr a-z A-Z)"; done
Sök efter en text i alla filer i en mapp
grep -r "string" .
Kollar antal dagar det är kvar på ett certifikat
remote_cert_remaining_days() { cert_remaining_time=$(date -d "$(openssl s_client -connect $1 2>/dev/null </dev/null | openssl x509 -enddate -noout | cut -d'=' -f2)" "+%s"); current_time=$(date "+%s"); echo remaining $((($cert_remaining_time - $current_time) / 60 / 60 / 24)) days; }
remote_cert_remaining_days fqdn:443
Räkna ut option 121 för DHCP
För att kunna skicka ut fler routes via DHCP behöver man skriva på ett visst sätt. Följande sida kan hjälpa till med det: Route calculator
Intervjufrågor
Ska du på arbetsintervju för ett linuxjobb? Prepare your anus!
- Vad är det för skillnad på en vanlig fil och ett directory?
- Vad är en i-node?
- Vad är det för skillnad på hard och soft links? Vad händer om man tar bort källan för länken?
- Vad är en process och vad består den logiskt av?
- Vad är det för skillnad på mtab och fstab?
- Vad gör rm-kommandot? (utan växlar)
- Vad är det för skillnad på kill och kill -9?
- Villka process states finns det?
- Vad är det för skillnad på process och thread?
- Vad är en Socket?
- Vad är Huge Pages och vad används de till?
- Hur frigör man cacheat minne utan att reboota systemet?
- Vad är det för skillnad på chmod och setfacl?
- Vad är Memory Overcommit?
- Vad är system load average som visas av uptime-kommandot?
- Vad finns det för för- och nackdelar med kernel kontra user space?
- Vad är runlevel?
- Vad är det för skillnad på TTY och PTS?
- Du är fast på en öde ö och får bara använda ett enda kommando, vilket väljer du?
Svar
Kommer inom sinom tid, har du svar bidra gärna