Linux_Practical_Interview_251 500
Linux Practical Interview Questions (251-500)
Section titled “Linux Practical Interview Questions (251-500)”Linux File System
Section titled “Linux File System”Q241: How do you create and manage ext4 filesystem?
Section titled “Q241: How do you create and manage ext4 filesystem?”Answer:
# Create ext4mkfs.ext4 /dev/sdb1
# With optionsmkfs.ext4 -T largefile -m 0 /dev/sdb1
# Tunetune2fs -c 30 /dev/sdb1 # check every 30 mountstune2fs -i 30d /dev/sdb1 # check every 30 days
# Checke2fsck -f /dev/sdb1
# Resizeresize2fs /dev/sdb1 # to fill partitionresize2fs /dev/sdb1 10G # shrink to 10GQ242: How do you create XFS filesystem?
Section titled “Q242: How do you create XFS filesystem?”Answer:
# Create XFSmkfs.xfs /dev/sdb1
# With optionsmkfs.xfs -f -d agcount=4 -l size=100m /dev/sdb1
# Checkxfs_repair /dev/sdb1
# Growxfs_growfs /mount/point
# Repairxfs_repair -n /dev/sdb1 # just checkQ243: How do you create btrfs filesystem?
Section titled “Q243: How do you create btrfs filesystem?”Answer:
# Createmkfs.btrfs -L mydata /dev/sdb
# RAID levelsmkfs.btrfs -d raid1 -m raid1 /dev/sdb /dev/sdc
# Subvolumesmount /dev/sdb /mnt/btrfsbtrfs subvolume create /mnt/btrfs/vol1
# Snapshotsbtrfs subvolume snapshot /mnt/btrfs/vol1 /mnt/btrfs/snap1
# Propertiesbtrfs property set /mnt/btrfs/vol1 compression zstdQ244: How do you manage disk quotas?
Section titled “Q244: How do you manage disk quotas?”Answer:
# Enable quotaquotacheck -cug /home
# Set quotaedquota -u username# Edit soft/hard limits
# Check quotaquota -u usernamequota -g groupname
# Reportrepquota -arepquota -aug
# Enable at boot# /etc/fstab/dev/sda1 /home ext4 defaults,usrquota,grpquota 0 2Q245: How do you use LVM thin provisioning?
Section titled “Q245: How do you use LVM thin provisioning?”Answer:
# Create thin poollvcreate -L 100G --thinpool thin_pool vg_data
# Create thin volumelvcreate -V 200G --thin -n thin_vol vg_data/thin_pool
# Monitorlvs -alvdisplay vg_data/thin_pool
# Extend poollvextend -L +50G vg_data/thin_poolLinux Networking Advanced
Section titled “Linux Networking Advanced”Q246: How do you configure network bridging?
Section titled “Q246: How do you configure network bridging?”Answer:
# Using brctlbrctl addbr br0brctl addif br0 eth0brctl addif br0 eth1ip addr add 192.168.1.10/24 dev br0
# Using ipip link add name br0 type bridgeip link set eth0 master br0ip link set eth1 master br0ip link set br0 up
# Make persistent (systemd)cat > /etc/systemd/network/25-bridge.network <<EOF[Match]Name=br0
[Network]Address=192.168.1.10/24Gateway=192.168.1.1EOFQ247: How do you configure VLAN tagging?
Section titled “Q247: How do you configure VLAN tagging?”Answer:
# Using vconfigvconfig add eth0 100
# Using ipip link add link eth0 name eth0.100 type vlan id 100ip link set eth0.100 upip addr add 192.168.100.10/24 dev eth0.100
# Persistent (CentOS)cat > /etc/sysconfig/network-scripts/ifcfg-eth0.100 <<EOFDEVICE=eth0.100VLAN=yesONBOOT=yesIPADDR=192.168.100.10NETMASK=255.255.255.0EOFQ248: How do you configure tunneling?
Section titled “Q248: How do you configure tunneling?”Answer:
# GRE tunnelip tunnel add gre0 mode gre remote 192.168.1.10 local 192.168.1.20ip link set gre0 upip addr add 10.0.0.1/30 dev gre0
# IPIP tunnelip tunnel add ipip0 mode ipip remote 192.168.1.10 local 192.168.1.20ip link set ipip0 up
# WireGuardwg genkey | tee private.key | wg pubkey > public.key
# OpenVPN tunnelopenvpn --dev tun0 --ifconfig 10.0.0.1 10.0.0.2Q249: How do you configure policy routing?
Section titled “Q249: How do you configure policy routing?”Answer:
# Create routing tableecho "200 custom" >> /etc/iproute2/rt_tables
# Add ruleip rule add from 192.168.1.10 table customip rule add to 192.168.1.10 table custom
# Add routeip route add 10.0.0.0/24 via 192.168.1.1 table custom
# NAT/Masqueradeiptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
# Make persistentcat > /etc/network/if-up.d/custom-routes <<EOF#!/bin/ship rule add from 192.168.1.10 table customEOFQ250: How do you configure DNS client?
Section titled “Q250: How do you configure DNS client?”Answer:
nameserver 8.8.8.8nameserver 8.8.4.4search example.com
# Using systemd-resolvedsystemctl enable systemd-resolvedsystemctl start systemd-resolvedresolvectl status
# Override DNS per interface# /etc/systemd/resolved.conf.d/dns.conf[Resolve]DNS=1.1.1.1Domains=example.com
# Using dhclient# /etc/dhcp/dhclient.confsupersede domain-name-servers 8.8.8.8, 8.8.4.4;Q251: How do you configure static routes?
Section titled “Q251: How do you configure static routes?”Answer:
# Temporaryip route add 192.168.100.0/24 via 192.168.1.1 dev eth0
# Persistent (Debian)# /etc/network/interfacesup ip route add 192.168.100.0/24 via 192.168.1.1
# Persistent (CentOS)cat > /etc/sysconfig/network-scripts/route-eth0 <<EOF192.168.100.0/24 via 192.168.1.1EOF
# Default routeip route add default via 192.168.1.1Q252: How do you use iproute2 for advanced routing?
Section titled “Q252: How do you use iproute2 for advanced routing?”Answer:
# Load balancingip route add default scope global \ nexthop via 192.168.1.1 dev eth0 weight 1 \ nexthop via 192.168.2.1 dev eth1 weight 1
# Multipathip route add 10.0.0.0/8 \ nexthop via 192.168.1.1 dev eth0 \ nexthop via 192.168.2.1 dev eth1
# Blackhole routeip route add blackhole 10.0.0.0/8
# Monitorip monitor routeQ253: How do you configure network bonding (advanced)?
Section titled “Q253: How do you configure network bonding (advanced)?”Answer:
# Mode 4 (LACP)cat > /etc/modprobe.d/bonding.conf <<EOFoptions bond0 mode=4 miimon=100 lacp_rate=1EOF
# Team driver (CentOS)nmcli con add type team ifname team0 con-name team0nmcli con add type team-slave ifname eth0 master team0nmcli con add type team-slave ifname eth1 master team0nmcli con modify team0 team.runner lacpQ254: How do you use ethtool?
Section titled “Q254: How do you use ethtool?”Answer:
# Check settingsethtool eth0
# Set speed/duplexethtool -s eth0 speed 1000 duplex full autoneg off
# Enable wake-on-LANethtool -s eth0 wol g
# Check driver infoethtool -i eth0
# Ring buffersethtool -G eth0 rx 4096 tx 4096
# Offloadsethtool -K eth0 tso on gso on gro onQ255: How do you configure network namespace?
Section titled “Q255: How do you configure network namespace?”Answer:
# Create namespaceip netns add redip netns add blue
# List namespacesip netns list
# Execute in namespaceip netns exec red ip linkip netns exec red ping 8.8.8.8
# Connect namespaces with vethip link add veth0 type veth peer name veth1ip link set veth1 netns redip netns exec red ip link set veth1 name eth0
# Deleteip netns delete redLinux Performance Analysis
Section titled “Linux Performance Analysis”Q256: How do you use perf?
Section titled “Q256: How do you use perf?”Answer:
# CPU profilingperf record -g ./programperf record -p PIDperf record -a -g # system-wide
# Reportperf reportperf report --stdio
# Topperf topperf top -p PID
# Specific eventsperf stat -e cycles,instructions,cache-misses ./programperf stat -e 'syscalls:sys_enter_*' -a
# Traceperf record -e sched:sched_switch -aperf scriptQ257: How do you analyze memory issues?
Section titled “Q257: How do you analyze memory issues?”Answer:
# Check memory usagefree -hcat /proc/meminfo
# Per-process memoryps aux --sort=-%mem | headpmap -X PID
# Check for memory leaksvalgrind --leak-check=full ./program
# Slab infoslabtopcat /proc/slabinfo
# Huge pagescat /proc/meminfo | grep -i huge
# OOM killerdmesg | grep -i "out of memory"cat /var/log/messages | grep -i oomQ258: How do you analyze I/O issues?
Section titled “Q258: How do you analyze I/O issues?”Answer:
# iostatiostat -x 1iostat -x -d sda 1
# iotopiotopiotop -o # only activeiotop -P # processes only
# blktraceblktrace -d /dev/sda -o /tmp/blkblkparse -i /tmp/blk
# Latencyioping -c 10 /dev/sdaQ259: How do you analyze network issues?
Section titled “Q259: How do you analyze network issues?”Answer:
# Network statsnetstat -sss -s
# Per-socket statsss -tunapl
# Bandwidthnethogs eth0iftop
# Latencyping -c 10 8.8.8.8traceroute 8.8.8.8mtr 8.8.8.8
# Capturetcpdump -i eth0 host 192.168.1.1tcpdump -i eth0 port 80Q260: How do you use strace effectively?
Section titled “Q260: How do you use strace effectively?”Answer:
# Basicstrace -p PIDstrace -c command
# Trace specific callsstrace -e trace=read,write -p PIDstrace -e trace=network -p PIDstrace -e trace=file -p PID
# Timestampsstrace -t -p PIDstrace -tt -p PIDstrace -T -p PID
# Follow forksstrace -f -p PID
# Output to filestrace -o output.txt -p PID
# Attach to running processstrace -p PIDQ261: How do you use ltrace?
Section titled “Q261: How do you use ltrace?”Answer:
# Basicltrace -p PIDltrace -c command
# Library callsltrace -l lib.so commandltrace -L command
# Time spentltrace -T command
# Follow child processesltrace -f command
# Filterltrace -e "*malloc*+*free*" command
# Attach to processltrace -p PIDQ262: How do you use vmstat?
Section titled “Q262: How do you use vmstat?”Answer:
# Basicvmstat 1
# Memory detailsvmstat -m
# Diskvmstat -d
# Summaryvmstat -s
# Active/inactive memoryvmstat -aQ263: How do you use mpstat?
Section titled “Q263: How do you use mpstat?”Answer:
# All CPUsmpstat
# Intervalmpstat 2 5
# Per processormpstat -P ALL 1 3
# Specific CPUmpstat -P 0 1 5
# Fieldsmpstat -AQ264: How do you tune kernel parameters for performance?
Section titled “Q264: How do you tune kernel parameters for performance?”Answer:
# Networknet.core.rmem_max=16777216net.core.wmem_max=16777216net.ipv4.tcp_rmem=4096 87380 16777216net.ipv4.tcp_wmem=4096 65536 16777216
# File descriptorsfs.file-max=65535
# Kernelkernel.shmmax=68719476736kernel.shmall=4294967296
# Applysysctl -pQ265: How do you optimize system limits?
Section titled “Q265: How do you optimize system limits?”Answer:
* soft nofile 65535* hard nofile 65535* soft nproc 4096* hard nproc 8192root soft nofile unlimited
# Kernel limitsecho 65535 > /proc/sys/fs/file-max
# Apply without logoutulimit -n 65535sysctl -w fs.file-max=65535Linux Containers
Section titled “Linux Containers”Q266: How do you optimize Docker?
Section titled “Q266: How do you optimize Docker?”Answer:
# Use multi-stage buildsFROM golang:1.20 AS builderWORKDIR /appCOPY . .RUN go build -o main .
FROM alpine:3.18COPY --from=builder /app/main /app/mainCMD ["/app/main"]
# .dockerignorenode_modules.git*.md
# Build argsARG VERSIONENV VERSION=$VERSIONQ267: How do you secure containers?
Section titled “Q267: How do you secure containers?”Answer:
# Run as non-rootdocker run -u 1000:1000 nginx
# Read-onlydocker run --read-only nginx
# No new privilegesdocker run --security-opt no-new-privileges:true nginx
# Drop capabilitiesdocker run --cap-drop ALL --cap-add NET_BIND_SERVICE nginx
# AppArmordocker run --security-opt apparmor=profile nginx
# Seccompdocker run --security-opt seccomp=default nginxQ268: How do you use Docker networking?
Section titled “Q268: How do you use Docker networking?”Answer:
# Create networkdocker network create mynet
# Host networkdocker run --network host nginx
# Bridgedocker run --network bridge nginx
# Overlay (swarm)docker network create --driver overlay myoverlay
# DNSdocker run --dns 8.8.8.8 nginxdocker run --network-alias myapp nginxQ269: How do you use Docker volumes?
Section titled “Q269: How do you use Docker volumes?”Answer:
# Bind mountdocker run -v /host/path:/container/path nginx
# Named volumedocker volume create mydatadocker run -v mydata:/data nginx
# tmpfsdocker run --tmpfs /run nginx
# Read-onlydocker run -v /data:/data:ro nginx
# Backup volumedocker run --rm -v mydata:/data -v $(pwd):/backup alpine tar cvf /backup/backup.tar /dataQ270: How do you use Docker Compose?
Section titled “Q270: How do you use Docker Compose?”Answer:
version: '3.8'services: web: build: . ports: - "80:80" environment: - NODE_ENV=production depends_on: - db networks: - frontend - backend
db: image: postgres:14 volumes: - dbdata:/var/lib/postgresql/data networks: - backend
networks: frontend: backend:
volumes: dbdata:Q271: How do you use Podman?
Section titled “Q271: How do you use Podman?”Answer:
# Rootlesspodman run -d nginx
# Buildpodman build -t myimage .podman build -f Dockerfile.custom
# Systemd integrationpodman generate systemd --name container > container.service
# Quadletcat > container.container <<EOF[Container]Image=nginxPublishPort=8080:80
[Service]Restart=alwaysEOFsystemctl --user start containerQ272: How do you use Buildah?
Section titled “Q272: How do you use Buildah?”Answer:
# Build from Dockerfilebuildah bud -t myimage .
# Build without Dockerfilebuildah from alpinebuildah run alpine -- apk add nginxbuildah commit alpine myimage
# Layersbuildah bud --layers -t myapp
# Pushbuildah push myimage docker://registry/myimage:latestQ273: How do you use Skopeo?
Section titled “Q273: How do you use Skopeo?”Answer:
# Inspectskopeo inspect docker://nginx:latest
# Copyskopeo copy docker://src/nginx:latest docker://dest/nginx:latest
# List tagsskopeo list-tags docker://registry/myimage
# Syncskopeo sync --src docker --dest dir nginx /local/pathQ274: How do you configure containerd?
Section titled “Q274: How do you configure containerd?”Answer:
# Installapt install containerd
# Configure /etc/containerd/config.tomlversion = 2[plugins] [plugins."io.containerd.grpc.v1.cri"] sandbox_image = "registry.k8s.io/pause:3.9" [plugins."io.containerd.grpc.v1.cri".containerd.runtimes] [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] runtime_type = "io.containerd.runtime.v1.linux"Q275: How do you use crictl?
Section titled “Q275: How do you use crictl?”Answer:
# Configurecat > /etc/crictl.yaml <<EOFruntime-endpoint: unix:///var/run/dockershim.sockimage-endpoint: unix:///var/run/dockershim.sockEOF
# Pullcrictl pull nginx:latest
# Runcrictl run -r docker pod.json container.json
# Listcrictl podscrictl ps
# Logscrictl logs container-idLinux Orchestration
Section titled “Linux Orchestration”Q276: How do you create Kubernetes deployment?
Section titled “Q276: How do you create Kubernetes deployment?”Answer:
apiVersion: apps/v1kind: Deploymentmetadata: name: myapp labels: app: myappspec: replicas: 3 selector: matchLabels: app: myapp template: metadata: labels: app: myapp spec: containers: - name: myapp image: nginx:latest ports: - containerPort: 80 resources: requests: memory: "64Mi" cpu: "250m" limits: memory: "128Mi" cpu: "500m"Q277: How do you create Kubernetes service?
Section titled “Q277: How do you create Kubernetes service?”Answer:
# ClusterIPapiVersion: v1kind: Servicemetadata: name: myapp-svcspec: type: ClusterIP selector: app: myapp ports: - port: 80 targetPort: 80
# NodePortspec: type: NodePort selector: app: myapp ports: - port: 80 targetPort: 80 nodePort: 30080
# LoadBalancerspec: type: LoadBalancer selector: app: myapp ports: - port: 80 targetPort: 80Q278: How do you create Kubernetes ingress?
Section titled “Q278: How do you create Kubernetes ingress?”Answer:
apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: myapp-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: /spec: rules: - host: myapp.example.com http: paths: - path: / pathType: Prefix backend: service: name: myapp-svc port: number: 80 tls: - hosts: - myapp.example.com secretName: tls-secretQ279: How do you create Kubernetes configmap and secrets?
Section titled “Q279: How do you create Kubernetes configmap and secrets?”Answer:
# ConfigMapapiVersion: v1kind: ConfigMapmetadata: name: app-configdata: database_url: "postgres://db:5432/myapp" cache_enabled: "true"
---# SecretapiVersion: v1kind: Secretmetadata: name: db-credentialstype: OpaquestringData: username: admin password: secret123Q280: How do you create Kubernetes persistent volume?
Section titled “Q280: How do you create Kubernetes persistent volume?”Answer:
# PVCapiVersion: v1kind: PersistentVolumeClaimmetadata: name: mypvcspec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: gp3
---# Pod using PVCspec: containers: - name: app image: nginx volumeMounts: - name: data mountPath: /data volumes: - name: data persistentVolumeClaim: claimName: mypvcQ281: How do you create Kubernetes statefulset?
Section titled “Q281: How do you create Kubernetes statefulset?”Answer:
apiVersion: apps/v1kind: StatefulSetmetadata: name: mysqlspec: serviceName: mysql replicas: 3 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:8 volumeMounts: - name: data mountPath: /var/lib/mysql volumeClaimTemplates: - metadata: name: data spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 10GiQ282: How do you create Kubernetes job and cronjob?
Section titled “Q282: How do you create Kubernetes job and cronjob?”Answer:
# JobapiVersion: batch/v1kind: Jobmetadata: name: myjobspec: template: spec: containers: - name: job image: busybox command: ["echo", "Hello from job"] restartPolicy: OnFailure
---# CronJobapiVersion: batch/v1kind: CronJobmetadata: name: mycronjobspec: schedule: "0 * * * *" jobTemplate: spec: template: spec: containers: - name: cron image: busybox command: ["echo", "Hello from cron"] restartPolicy: OnFailureQ283: How do you use Helm?
Section titled “Q283: How do you use Helm?”Answer:
# Add repohelm repo add stable https://charts.helm.sh/stablehelm repo update
# Installhelm install myrelease stable/nginxhelm install myrelease stable/nginx --set service.type=NodePort
# Upgradehelm upgrade myrelease stable/nginx
# Templatehelm template myrelease stable/nginx -f values.yaml
# Packagehelm package mychart/
# Hookshelm install --dry-run --debugQ284: How do you use Kustomize?
Section titled “Q284: How do you use Kustomize?”Answer:
apiVersion: kustomize.config.k8s.io/v1beta1kind: Kustomizationresources: - deployment.yaml - service.yamlnamespace: productioncommonLabels: app: myappconfigMapGenerator: - name: app-config literals: - DEBUG=falsereplicas: - name: deployment count: 3patches: - patch: |- - op: replace path: /spec/replicas value: 5 target: kind: DeploymentQ285: How do you configure K3s?
Section titled “Q285: How do you configure K3s?”Answer:
# Install servercurl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable traefik" sh -
# Tokencat /var/lib/rancher/k3s/server/node-token
# Install agentcurl -sfL https://get.k3s.io | \ K3S_URL=https://server:6443 \ K3S_TOKEN=TOKEN \ sh -
# kubectlmkdir -p ~/.kubecp /etc/rancher/k3s/k3s.yaml ~/.kube/configchmod 600 ~/.kube/configLinux Security
Section titled “Linux Security”Q286: How do you harden SSH?
Section titled “Q286: How do you harden SSH?”Answer:
PermitRootLogin noPubkeyAuthentication yesPasswordAuthentication noPermitEmptyPasswords noMaxAuthTries 3ClientAliveInterval 300X11Forwarding noAllowTcpForwarding noForceCommand none
# Restartsystemctl restart sshd
# Generate keysssh-keygen -t ed25519 -C "admin@host"Q287: How do you configure firewall (iptables)?
Section titled “Q287: How do you configure firewall (iptables)?”Answer:
# Default policiesiptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT ACCEPT
# Allow loopbackiptables -A INPUT -i lo -j ACCEPT
# Allow establishediptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Allow servicesiptables -A INPUT -p tcp --dport 22 -j ACCEPTiptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Saveiptables-save > /etc/iptables/rules.v4Q288: How do you configure fail2ban?
Section titled “Q288: How do you configure fail2ban?”Answer:
# Installapt install fail2ban
[sshd]enabled = trueport = sshmaxretry = 3bantime = 3600findtime = 600
[nginx-http-auth]enabled = true
# Commandsfail2ban-client statusfail2ban-client set sshd unbanip 192.168.1.10fail2ban-client get sshd ban Time
# Logstail -f /var/log/fail2ban.logQ289: How do you configure SELinux?
Section titled “Q289: How do you configure SELinux?”Answer:
# Statusgetenforcesestatus
# Set modesetenforce 0 # permissivesetenforce 1 # enforcing
# Make persistent# /etc/selinux/configSELINUX=enforcing
# Contextchcon -t httpd_sys_content_t /var/www/htmlsemanage fcontext -a -t httpd_sys_content_t "/web(/.*)?"restorecon -Rv /web
# Booleansetsebool -P httpd_can_network_connect 1getsebool -a | grep httpdQ290: How do you configure AppArmor?
Section titled “Q290: How do you configure AppArmor?”Answer:
# Statusaa-statusaa-enabled
# Modesaa-complain /usr/bin/nginxaa-enforce /usr/bin/nginx
# Profilecat /etc/apparmor.d/usr.bin.nginx#include <tunables/global>/usr/bin/nginx { # Allow read /etc/nginx/** r, # Allow write /var/log/nginx/** wa, # Network network inet stream,}
# Reloadapparmor_parser -r /etc/apparmor.d/usr.bin.nginxQ291: How do you use AIDE?
Section titled “Q291: How do you use AIDE?”Answer:
# Installapt install aide
# Initializeaideinit
# Update databaseaide --update
# Checkaide --check
# Configuration /etc/aide/aide.conf/etc/ NORMAL/var/log/ LOG!/var/log/*.log
# Daily check0 5 * * * /usr/bin/aide --checkQ292: How do you use auditd?
Section titled “Q292: How do you use auditd?”Answer:
# Installapt install auditd
# Add rulesauditctl -w /etc/passwd -p wa -k passwd_changeauditctl -w /var/www/html -p r -k web_accessauditctl -w /sbin/iptables -p x -k iptables_change
# List rulesauditctl -l
# Search logsausearch -k passwd_changeaureport -f
# Enable at bootauditctl -e 2Q293: How do you secure Linux kernel?
Section titled “Q293: How do you secure Linux kernel?”Answer:
# Networknet.ipv4.tcp_syncookies = 1net.ipv4.conf.all.rp_filter = 1net.ipv4.conf.default.rp_filter = 1net.ipv4.icmp_echo_ignore_broadcasts = 1net.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.default.accept_redirects = 0
# Applysysctl -psysctl --systemQ294: How do you implement user quotas?
Section titled “Q294: How do you implement user quotas?”Answer:
# Enable quota/dev/sda1 /home ext4 defaults,usrquota,grpquota 0 2
# Remountmount -o remount /home
# Initializequotacheck -aug
# Set quotaedquota -u username
# Enablequotaon /home
# Checkquota -u usernamerepquota -aQ295: How do you configure encrypted partitions?
Section titled “Q295: How do you configure encrypted partitions?”Answer:
# Create LUKScryptsetup luksFormat /dev/sdb1
# Opencryptsetup open /dev/sdb1 crypt_vol
# Formatmkfs.ext4 /dev/mapper/crypt_vol
# Mountmount /dev/mapper/crypt_vol /mnt/data
# Closeumount /mnt/datacryptsetup close crypt_vol
# Auto mount# /etc/crypttabcrypt_vol /dev/sdb1 none luksLinux Services
Section titled “Linux Services”Q296: How do you configure Apache?
Section titled “Q296: How do you configure Apache?”Answer:
# Installapt install apache2
# Virtual host<VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/html
<Directory /var/www/html> Options -Indexes +FollowSymLinks AllowOverride All Require all granted </Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>
# Enablea2ensite example.confsystemctl reload apache2Q297: How do you configure Nginx?
Section titled “Q297: How do you configure Nginx?”Answer:
# Installapt install nginx
# Server blockserver { listen 80; server_name example.com;
root /var/www/html; index index.html;
location / { try_files $uri $uri/ =404; }
location ~ \.php$ { fastcgi_pass unix:/run/php/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
ssl_certificate /etc/ssl/certs/server.crt; ssl_certificate_key /etc/ssl/private/server.key;}Q298: How do you configure HAProxy?
Section titled “Q298: How do you configure HAProxy?”Answer:
# Installapt install haproxy
global log /dev/log local0 maxconn 4000 user haproxy group haproxy
defaults log global mode http option httplog option dontlognull
frontend http-in bind *:80 default_backend servers
backend servers balance roundrobin server s1 192.168.1.10:80 check server s2 192.168.1.11:80 check
# Enable statslisten stats bind *:8404 stats enable stats uri /statsQ299: How do you configure Postfix?
Section titled “Q299: How do you configure Postfix?”Answer:
# Installapt install postfix mailutils
myhostname = mail.example.commydomain = example.commyorigin = $mydomainmydestination = $myhostname, localhost, localhost.localdomainmynetworks = 192.168.1.0/24 127.0.0.0/8relayhost = [smtp.gmail.com]:587smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/sasl_passwdsmtp_tls_security_level = encrypt
# Create credentialsecho "[smtp.gmail.com]:587 username:password" > /etc/postfix/sasl_passwdpostmap /etc/postfix/sasl_passwdQ300: How do you configure Dovecot?
Section titled “Q300: How do you configure Dovecot?”Answer:
# Installapt install dovecot-core dovecot-imapd
protocols = imap pop3listen = *
# /etc/dovecot/10-auth.confdisable_plaintext_auth = yesauth_mechanisms = plain login
# /etc/dovecot/10-mail.confmail_location = maildir:~/Maildir
# Userdb (PAM)# /etc/dovecot/10-auth.conf!include auth-system.conf.ext
systemctl restart dovecotLinux Database Administration
Section titled “Linux Database Administration”Q301: How do you manage MySQL?
Section titled “Q301: How do you manage MySQL?”Answer:
# Installapt install mysql-server
# Securemysql_secure_installation
# Connectmysql -u root -p
# Create databaseCREATE DATABASE mydb;CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';FLUSH PRIVILEGES;
# Backupmysqldump -u root -p mydb > backup.sql
# Restoremysql -u root -p mydb < backup.sqlQ302: How do you manage PostgreSQL?
Section titled “Q302: How do you manage PostgreSQL?”Answer:
# Installapt install postgresql
# Connectsudo -u postgres psql
# Create user/databaseCREATE USER myuser WITH PASSWORD 'password';CREATE DATABASE mydb OWNER myuser;
# Backuppg_dump -U myuser mydb > backup.sql
# Restorepsql -U myuser mydb < backup.sql
# RolesALTER USER myuser WITH SUPERUSER;Q303: How do you optimize MySQL?
Section titled “Q303: How do you optimize MySQL?”Answer:
[mysqld]innodb_buffer_pool_size = 4Ginnodb_log_file_size = 1Gmax_connections = 500table_open_cache = 4000query_cache_size = 0slow_query_log = 1slow_query_log_file = /var/log/mysql/slow.loglong_query_time = 2max_connect_errors = 100000wait_timeout = 600Q304: How do you optimize PostgreSQL?
Section titled “Q304: How do you optimize PostgreSQL?”Answer:
shared_buffers = 4GBeffective_cache_size = 12GBmaintenance_work_mem = 1GBcheckpoint_completion_target = 0.9wal_buffers = 64MBdefault_statistics_target = 100random_page_cost = 1.1effective_io_concurrency = 200work_mem = 26214kBmin_wal_size = 1GBmax_wal_size = 4GBQ305: How do you configure MySQL replication?
Section titled “Q305: How do you configure MySQL replication?”Answer:
# Master[mysqld]server-id = 1log_bin = /var/log/mysql/mysql-binbinlog_do_db = mydb
# Slave[mysqld]server-id = 2relay-log = /var/log/mysql/mysql-relay-bin
# CommandsGRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password';FLUSH TABLES WITH READ LOCK;SHOW MASTER STATUS;
CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=xxx;START SLAVE;Q306: How do you configure PostgreSQL replication?
Section titled “Q306: How do you configure PostgreSQL replication?”Answer:
# Masterwal_level = replicamax_wal_senders = 3max_replication_slots = 3
# Slavehot_standby = onprimary_conninfo = 'host=master_ip port=5432 user=repl password=password'
# Commandspg_basebackup -h master_ip -D /var/lib/postgresql/14/main -P -Xs -RQ307: How do you use Redis?
Section titled “Q307: How do you use Redis?”Answer:
# Installapt install redis-server
# Configure /etc/redis/redis.confbind 127.0.0.1port 6379maxmemory 2gbmaxmemory-policy allkeys-lrusave ""
# Commandsredis-cliSET key valueGET keyDEL keyKEYS patternQ308: How do you use MongoDB?
Section titled “Q308: How do you use MongoDB?”Answer:
# Installapt install mongodb
# Connectmongosh
# Commandsuse mydbdb.users.insertOne({name: "John", age: 30})db.users.find()db.users.find({age: {$gt: 25}})db.users.updateOne({name: "John"}, {$set: {age: 31}})db.users.deleteOne({name: "John"})Q309: How do you backup databases?
Section titled “Q309: How do you backup databases?”Answer:
# MySQLmysqldump -u root -p --all-databases > all_databases.sqlmysqldump -u root -p mydb | gzip > mydb.sql.gz
# PostgreSQLpg_dumpall -U postgres > all.sqlpg_dump -U myuser mydb | gzip > mydb.sql.gz
# Automate# /etc/cron.d/backup0 2 * * * root mysqldump -u root -psecret mydb | gzip > /backup/mydb-$(date +\%Y\%m\%d).sql.gzQ310: How do you secure databases?
Section titled “Q310: How do you secure databases?”Answer:
# MySQLDELETE FROM mysql.user WHERE User='';DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1');FLUSH PRIVILEGES;
# Create application userCREATE USER 'appuser'@'localhost' IDENTIFIED BY 'strongpassword';GRANT SELECT, INSERT, UPDATE, DELETE ON appdb.* TO 'appuser'@'localhost';
# PostgreSQL# pg_hba.confhost all all 127.0.0.1/32 md5host all all ::1/128 md5Linux Monitoring
Section titled “Linux Monitoring”Q311: How do you use Prometheus?
Section titled “Q311: How do you use Prometheus?”Answer:
# Installdocker run -d -p 9090:9090 prom/prometheus
global: scrape_interval: 15s
scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node' static_configs: - targets: ['localhost:9100']
# Node exporterdocker run -d -p 9100:9100 prom/node-exporterQ312: How do you use Grafana?
Section titled “Q312: How do you use Grafana?”Answer:
# Installdocker run -d -p 3000:3000 grafana/grafana
# Add datasourcecurl -X POST http://localhost:3000/api/datasources \ -H "Content-Type: application/json" \ -u admin:admin \ -d '{"name":"Prometheus","type":"prometheus","url":"http://localhost:9090","access":"proxy"}'
# Dashboard JSON# Import via UI or APIQ313: How do you use ELK Stack?
Section titled “Q313: How do you use ELK Stack?”Answer:
# Elasticsearchdocker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7
# Kibanadocker run -d -p 5601:5601 kibana:7
# Logstashdocker run -d -p 5044:5044 -v /etc/logstash/conf.d:/usr/share/logstash/pipeline logstash:7
# Filebeat (on clients)filebeat.inputs:- type: log paths: - /var/log/*.logoutput.logstash: hosts: ["logstash:5044"]Q314: How do you use Nagios?
Section titled “Q314: How do you use Nagios?”Answer:
# Installapt install nagios4
# Commands /etc/nagios4/conf.d/commands.cfgdefine command{ command_name check_local_disk command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$}
# Services /etc/nagios4/conf.d/services.cfgdefine service{ host_name localhost service_description Disk Space check_command check_local_disk!20%!10%!/}
# Enable checkssystemctl enable nagios4systemctl start nagios4Q315: How do you use Zabbix?
Section titled “Q315: How do you use Zabbix?”Answer:
# Installapt install zabbix-server-mysql zabbix-frontend-php
# Configure# /etc/zabbix/zabbix_server.confDBHost=localhostDBName=zabbixDBUser=zabbixDBPassword=password
# Web UI# http://server/zabbix
# Agentapt install zabbix-agent# /etc/zabbix/zabbix_agentd.confServer=192.168.1.10ServerActive=192.168.1.10Hostname=localhostQ316: How do you use Netdata?
Section titled “Q316: How do you use Netdata?”Answer:
# Installbash <(curl -Ss https://my-netdata.io/kickstart.sh)
# Configure# /etc/netdata/netdata.conf[global] run as user = netdata
# Access# http://localhost:19999Q317: How do you use Glances?
Section titled “Q317: How do you use Glances?”Answer:
# Installpip install glances
# Runglances
# Server modeglances -s
# Remoteglances -c server-ipQ318: How do you use htop?
Section titled “Q318: How do you use htop?”Answer:
# Installapt install htop
# Runhtop
# Optionshtop -u userhtop -p PID1,PID2
# Interactive# F3: search# F4: filter# F5: tree# F6: sort# F9: killQ319: How do you use atop?
Section titled “Q319: How do you use atop?”Answer:
# Installapt install atop
# Runatop
# Intervalatop 1
# Specific processatop -p PID
# Networkatop -n
# Write/read logatop -w /tmp/atop.log 30 120atop -r /tmp/atop.logQ320: How do you use sar?
Section titled “Q320: How do you use sar?”Answer:
# Enablesystemctl enable sysstatsystemctl start sysstat
# CPUsar -u 1 5
# Memorysar -r 1 5
# I/Osar -b 1 5
# Networksar -n DEV 1 5
# Generate reportsar -A > /tmp/sar_report.txtLinux Automation
Section titled “Linux Automation”Q321: How do you use Ansible?
Section titled “Q321: How do you use Ansible?”Answer:
[webservers]web1 ansible_host=192.168.1.10web2 ansible_host=192.168.1.11
[all:vars]ansible_user=adminansible_python_interpreter=/usr/bin/python3
# playbook.yml- hosts: webservers become: yes tasks: - name: Install nginx apt: name: nginx state: present - name: Start nginx service: name: nginx state: started enabled: yesQ322: How do you use Puppet?
Section titled “Q322: How do you use Puppet?”Answer:
class nginx { package { 'nginx': ensure => installed, } service { 'nginx': ensure => running, enable => true, } file { '/etc/nginx/nginx.conf': ensure => file, content => template('nginx/nginx.conf.erb'), }}
include nginxQ323: How do you use Chef?
Section titled “Q323: How do you use Chef?”Answer:
package 'nginx' do action :installend
service 'nginx' do action [:enable, :start]end
template '/etc/nginx/nginx.conf' do source 'nginx.conf.erb' mode '0644' notifies :restart, 'service[nginx]'endQ324: How do you use Salt?
Section titled “Q324: How do you use Salt?”Answer:
nginx: pkg.installed: - name: nginx service.running: - name: nginx - enable: True file.managed: - name: /etc/nginx/nginx.conf - source: salt://nginx/nginx.conf
# /srv/pillar/top.slsbase: '*': - nginxQ325: How do you use cron?
Section titled “Q325: How do you use cron?”Answer:
# Edit crontabcrontab -e
# Examples# Every minute* * * * * /path/to/script.sh
# Daily at 2am0 2 * * * /path/to/script.sh
# Weekly on Sunday0 0 * * 0 /path/to/script.sh
# Every 5 minutes*/5 * * * * /path/to/script.sh
# System cron# /etc/cron.d/mycron*/5 * * * * root /path/to/script.shQ326: How do you use systemd timers?
Section titled “Q326: How do you use systemd timers?”Answer:
[Unit]Description=Run daily at midnight
[Timer]OnCalendar=dailyPersistent=true
[Install]WantedBy=timers.target
# /etc/systemd/system/mytimer.service[Unit]Description=My Timer Job
[Service]Type=oneshotExecStart=/usr/local/bin/myscript.shQ327: How do you use Rundeck?
Section titled “Q327: How do you use Rundeck?”Answer:
# Installapt install rundeck
# Configure# /etc/rundeck/rundeck.propertiesgrails.serverURL=http://server:4440
# Create job (YAML)- id: job-id name: My Job description: Run a script execution: steps: - exec: /path/to/script.sh nodefilters: filter: 'name: web*'Q328: How do you use Jenkins?
Section titled “Q328: How do you use Jenkins?”Answer:
// Jenkinsfilepipeline { agent any stages { stage('Build') { steps { sh 'make build' } } stage('Test') { steps { sh 'make test' } } stage('Deploy') { steps { sh 'make deploy' } } }}Q329: How do you use GitLab CI?
Section titled “Q329: How do you use GitLab CI?”Answer:
stages: - build - test - deploy
build: stage: build script: - make build
test: stage: test script: - make test
deploy: stage: deploy script: - make deploy only: - mainQ330: How do you use Tower (AWX)?
Section titled “Q330: How do you use Tower (AWX)?”Answer:
# Installdocker run -d --name awx -p 8080:8052 awxقاب
# Create inventoryawx inventory create --name "My Inventory"
# Create projectawx project create --name "My Project" --scm-type git --scm-url "https://github.com/myproject"
# Create job templateawx job_template create --name "Deploy" --project "My Project" --inventory "My Inventory" --playbook deploy.ymlLinux Troubleshooting
Section titled “Linux Troubleshooting”Q331: How do you troubleshoot boot issues?
Section titled “Q331: How do you troubleshoot boot issues?”Answer:
# Check logsjournalctl -bjournalctl -b -1dmesg
# GRUB# Press Shift during boot# Edit boot entry, add: init=/bin/bash
# Mount rootmount -o remount,rw /
# Check fstabcat /etc/fstabblkid
# Rebuild initramfsupdate-initramfs -u
# Reinstall GRUBgrub-install /dev/sdagrub-mkconfig -o /boot/grub/grub.cfgQ332: How do you troubleshoot network issues?
Section titled “Q332: How do you troubleshoot network issues?”Answer:
# Check IPip addr showifconfig -a
# Check connectivityping -c 4 8.8.8.8ping -c 4 google.com
# Check DNSnslookup google.comdig google.com
# Check routesip routeroute -n
# Check portsnetstat -tulpnss -tulpn
# Check firewalliptables -L -nfirewall-cmd --list-all
# Restart networksystemctl restart NetworkManagerQ333: How do you troubleshoot disk issues?
Section titled “Q333: How do you troubleshoot disk issues?”Answer:
# Check spacedf -hdf -i
# Check inodesdf -i
# Find large filesdu -sh /*du -sh /var/* | sort -rh | head
# Check disk healthsmartctl -a /dev/sdasmartctl -H /dev/sda
# Check filesystemfsck -n /dev/sda1
# Check I/Oiostat -x 1iotopQ334: How do you troubleshoot high CPU?
Section titled “Q334: How do you troubleshoot high CPU?”Answer:
# Top processestophtopps aux --sort=-%cpu | head
# Per-corempstat -P ALL 1
# Threadsps -eLf -p PID
# Javajstack PID
# stracestrace -c -p PIDQ335: How do you troubleshoot high memory?
Section titled “Q335: How do you troubleshoot high memory?”Answer:
# Check usagefree -hcat /proc/meminfo
# Top processesps aux --sort=-%mem | head
# Slabslabtop
# OOM killerdmesg | grep -i "out of memory"journalctl -k | grep -i oom
# Clear cachesyncecho 3 > /proc/sys/vm/drop_cachesQ336: How do you troubleshoot service failures?
Section titled “Q336: How do you troubleshoot service failures?”Answer:
# Check statussystemctl status servicejournalctl -u service -n 50
# Check logsjournalctl -xetail -f /var/log/messages
# Test manually/usr/sbin/nginx -t
# Dependenciessystemctl list-dependencies service
# Portsnetstat -tulpn | grep LISTEN
# Kill and restartsystemctl kill servicesystemctl restart serviceQ337: How do you troubleshoot authentication?
Section titled “Q337: How do you troubleshoot authentication?”Answer:
# Check logstail -f /var/log/auth.logtail -f /var/log/secure
# PAMauth.log
# SSHssh -v user@hosttail -f /var/log/auth.log
# SSSDjournalctl -u sssdQ338: How do you troubleshoot performance?
Section titled “Q338: How do you troubleshoot performance?”Answer:
# System overviewsar -A 1 5
# CPUmpstat -P ALL 1
# Memoryvmstat 1
# I/Oiostat -x 1
# Networkiftopnethogs
# Processesstrace -c -p PIDperf topQ339: How do you troubleshoot DNS?
Section titled “Q339: How do you troubleshoot DNS?”Answer:
# Test resolutionnslookup google.comdig google.comhost google.com
# Check resolvercat /etc/resolv.confsystemd-resolve --status
# Flush DNSsystemd-resolve --flush-cachesresolvectl flush-caches
# Test specific serverdig @8.8.8.8 google.comnslookup google.com 8.8.8.8Q340: How do you troubleshoot SSL/TLS?
Section titled “Q340: How do you troubleshoot SSL/TLS?”Answer:
# Test SSLopenssl s_client -connect example.com:443openssl s_client -connect example.com:443 -servername example.com
# Check certificateecho | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -text
# Verify chainopenssl verify -CAfile ca.crt server.crt
# Check expiryecho | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -datesLinux Virtualization
Section titled “Linux Virtualization”Q341: How do you use KVM?
Section titled “Q341: How do you use KVM?”Answer:
# Installapt install qemu-kvm libvirt-daemon virt-manager
# Listvirsh list --all
# Createvirt-install --name vm1 --ram 2048 --disk size=20 \ --os-variant ubuntu20.04 --location http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/
# Start/Stopvirsh start vm1virsh shutdown vm1virsh destroy vm1
# Consolevirsh console vm1Q342: How do you use libvirt?
Section titled “Q342: How do you use libvirt?”Answer:
# Poolsvirsh pool-define-as default dir - - - - /var/lib/libvirt/imagesvirsh pool-start defaultvirsh pool-autostart defaultvirsh pool-list
# Networksvirsh net-define /etc/libvirt/qemu/networks/default.xmlvirsh net-start default
# Volumesvirsh vol-create --pool default --name vm1.qcow2 --capacity 20Gvirsh vol-list defaultQ343: How do you configure KVM networking?
Section titled “Q343: How do you configure KVM networking?”Answer:
# Bridgevirsh iface-bridge eth0 br0
# NAT networkvirsh net-define /dev/stdin <<EOF<network> <name>default</name> <forward mode='nat'/> <bridge name='virbr0' stp='on' delay='0'/></network>EOF
# Host-onlyvirsh net-define /dev/stdin <<EOF<network> <name>hostonly</name> <forward mode='bridge'> <bridge name='br0'/> </forward></network>EOFQ344: How do you manage KVM snapshots?
Section titled “Q344: How do you manage KVM snapshots?”Answer:
# Create snapshotvirsh snapshot-create-as vm1 --name snap1 --description "Before update"
# List snapshotsvirsh snapshot-list vm1
# Revertvirsh snapshot-revert vm1 snap1
# Deletevirsh snapshot-delete vm1 snap1Q345: How do you use QEMU?
Section titled “Q345: How do you use QEMU?”Answer:
# Create imageqemu-img create -f qcow2 vm.qcow2 20G
# Convertqemu-img convert -O qcow2 source.img dest.qcow2
# Resizeqemu-img resize vm.qcow2 +10G
# Infoqemu-img info vm.qcow2
# Runqemu-system-x86_64 -m 2048 -hda vm.qcow2 -cdrom iso.imgQ346: How do you use VirtualBox?
Section titled “Q346: How do you use VirtualBox?”Answer:
# Installapt install virtualbox
# Create VMVBoxManage createvm --name "MyVM" --ostype Ubuntu_64 --registerVBoxManage modifyvm "MyVM" --memory 2048 --vram 128VBoxManage storagectl "MyVM" --name "SATA" --add sataVBoxManage storageattach "MyVM" --storagectl "SATA" --port 0 --device 0 --type hdd --medium disk.vmdk
# StartVBoxManage startvm "MyVM"Q347: How do you use Xen?
Section titled “Q347: How do you use Xen?”Answer:
# Installapt install xen-hypervisor
# Create VMxl create /etc/xen/vm1.cfg
# Listxl list
# Start/Stopxl create vm1.cfgxl shutdown vm1xl destroy vm1
# Consolexl console vm1Q348: How do you use Proxmox?
Section titled “Q348: How do you use Proxmox?”Answer:
# Install# Download ISO, install
# Create VMqm create 100 --memory 2048 --name "MyVM" --net0 virtio,bridge=vmbr0qm start 100
# Listqm listpvesm list
# Backupvzdump --compress --storage local 100Q349: How do you use oVirt?
Section titled “Q349: How do you use oVirt?”Answer:
# Install# Install engine and hosts
# Create VMovirt-cli --user admin@internal --password password \ vm create --name "MyVM" --template "Blank" --cluster "Default"
# Startovirt-cli --user admin@internal --password password \ vm start --name "MyVM"Q350: How do you configure libguestfs?
Section titled “Q350: How do you configure libguestfs?”Answer:
# Installapt install libguestfs-tools
# Mountguestmount -a disk.img -m /dev/sda1 /mnt
# List filesguestfish -a disk.img -m /dev/sda1 ls /
# Editvirt-edit -a disk.img /etc/passwd
# Copy in/outvirt-copy-in file.txt /root/virt-copy-out /root/file.txt ./Linux Cloud
Section titled “Linux Cloud”Q351: How do you use AWS CLI?
Section titled “Q351: How do you use AWS CLI?”Answer:
# Installcurl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"unzip awscliv2.zip./aws/install
# Configureaws configureaws configure --profile name
# S3aws s3 lsaws s3 cp file.txt s3://bucket/aws s3 sync ./ s3://bucket/
# EC2aws ec2 describe-instancesaws ec2 start-instances --instance-id i-xxxQ352: How do you use Azure CLI?
Section titled “Q352: How do you use Azure CLI?”Answer:
# Installcurl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
# Loginaz login
# VMsaz vm listaz vm start --name vmname --resource-group rgname
# Storageaz storage account listaz storage blob upload --account-name account --container-name container --name blob --file fileQ353: How do you use GCP CLI?
Section titled “Q353: How do you use GCP CLI?”Answer:
# Installcurl https://sdk.cloud.google.com | bash
# Logingcloud auth login
# Computegcloud compute instances listgcloud compute instances start instance-name
# Storagegsutil lsgsutil cp file.txt gs://bucket/Q354: How do you configure cloud-init?
Section titled “Q354: How do you configure cloud-init?”Answer:
#cloud-configpackage_update: truepackages: - nginxusers: - name: admin ssh-authorized-keys: - ssh-rsa AAAA... sudo: ALL=(ALL) NOPASSWD:ALLruncmd: - systemctl enable nginx - systemctl start nginxwrite_files: - path: /var/www/html/index.html content: | <html><h1>Hello World</h1></html>Q355: How do you use Vagrant?
Section titled “Q355: How do you use Vagrant?”Answer:
# VagrantfileVagrant.configure("2") do |config| config.vm.box = "ubuntu/focal64" config.vm.network "private_network", ip: "192.168.33.10" config.vm.synced_folder "./data", "/vagrant_data" config.vm.provision "shell", inline: "apt-get update && apt-get install -y nginx"
config.vm.provider "virtualbox" do |vb| vb.memory = "2048" vb.cpus = 2 endend
# Commandsvagrant upvagrant sshvagrant haltvagrant destroyQ356: How do you use Packer?
Section titled “Q356: How do you use Packer?”Answer:
{ "builders": [ { "type": "amazon-ebs", "region": "us-east-1", "source_ami": "ami-xxx", "instance_type": "t2.micro", "ssh_username": "ubuntu", "ami_name": "my-image" } ], "provisioners": [ { "type": "shell", "inline": [ "apt-get update", "apt-get install -y nginx" ] } ]}
# Commandspacker validate template.jsonpacker build template.jsonQ357: How do you use Terraform?
Section titled “Q357: How do you use Terraform?”Answer:
terraform { required_providers { aws = { source = "hashicorp/aws" } }}
provider "aws" { region = "us-east-1"}
resource "aws_instance" "web" { ami = "ami-xxx" instance_type = "t3.micro" tags = { Name = "web" }}
# Commandsterraform initterraform planterraform applyterraform destroyterraform state listQ358: How do you use Kubernetes on cloud?
Section titled “Q358: How do you use Kubernetes on cloud?”Answer:
eksctl create cluster —name mycluster —region us-east-1 —nodegroup-name standard-workers —node-type t3.medium —nodes 3
gcloud container clusters create mycluster —zone us-east1-a —num-nodes 3
az aks create —resource-group mygroup —name mycluster —node-count 3 —enable-addons monitoring
### Q359: How do you use cloud-init on AWS?**Answer:**```bash# User data#cloud-configpackage_update: truepackages: - httpd
runcmd: - systemctl start httpd - systemctl enable httpd
# Or shell script#!/bin/bashyum update -yyum install -y httpdsystemctl start httpdsystemctl enable httpd
# Pass via --user-data-fileaws ec2 run-instances --image-id ami-xxx --instance-type t2.micro \ --key-name mykey --user-data-file userdata.txtQ360: How do you use Systems Manager?
Section titled “Q360: How do you use Systems Manager?”Answer:
# Install agentapt install amazon-ssm-agentsystemctl start amazon-ssm-agent
# Run commandaws ssm send-command \ --document-name "AWS-RunShellScript" \ --targets "[{\"Key\":\"instanceIds\",\"Values\":[\"i-xxx\"]}]" \ --parameters '{"commands":["hostname"]}'
# Session Manageraws ssm start-session --target i-xxx
# Parameter Storeaws ssm get-parameters --names "/my/param"aws ssm put-parameter --name "/my/param" --value "value" --type StringLinux Backup and Recovery
Section titled “Linux Backup and Recovery”Q361: How do you use rsync?
Section titled “Q361: How do you use rsync?”Answer:
# Basic syncrsync -avz source/ destination/
# With deletersync -avz --delete source/ destination/
# Excludersync -avz --exclude='*.log' --exclude='tmp/' source/ destination/
# Compressrsync -avz --compress source/ destination/
# Progressrsync -avz --progress source/ destination/
# Dry runrsync -avzn source/ destination/Q362: How do you use tar?
Section titled “Q362: How do you use tar?”Answer:
# Create archivetar -cvf archive.tar file1 file2 directory/
# With compressiontar -czvf archive.tar.gz directory/tar -cjvf archive.tar.bz2 directory/tar -cJvf archive.tar.xz directory/
# Extracttar -xvf archive.tartar -xzvf archive.tar.gztar -xjvf archive.tar.bz2
# Listtar -tvf archive.tarQ363: How do you use dump/restore?
Section titled “Q363: How do you use dump/restore?”Answer:
# Dumpdump -0uf /backup/root.dump /dump -1uf /backup/root.dump /
# Restorerestore -rf /backup/root.dumprestore -tvf /backup/root.dump
# Interactiverestore -if /backup/root.dumpQ364: How do you use dd?
Section titled “Q364: How do you use dd?”Answer:
# Clone diskdd if=/dev/sda of=/dev/sdb bs=4M status=progress
# Create imagedd if=/dev/sda of=/backup/sda.img bs=4M status=progress
# Restoredd if=/backup/sda.img of=/dev/sda bs=4M status=progress
# Zero diskdd if=/dev/zero of=/dev/sda bs=1M status=progress
# Test speeddd if=/dev/zero of=/tmp/test bs=1G count=1 oflag=directQ365: How do you use LVM snapshots?
Section titled “Q365: How do you use LVM snapshots?”Answer:
# Create snapshotlvcreate -L 10G -s -n snap /dev/vg/lv
# Mount snapshotmkdir -p /mnt/snapmount -o ro /dev/vg/snap /mnt/snap
# Restoreumount /mnt/snaplvconvert --merge /dev/vg/snap
# Removelvremove /dev/vg/snapQ366: How do you use Bacula?
Section titled “Q366: How do you use Bacula?”Answer:
# Installapt install bacula-server bacula-client
# Configure director# /etc/bacula/bacula-dir.conf
# Backup jobJob { Name = "BackupClient1" JobDefs = "DefaultJob" Client = client1-fd FileSet = "Full Set"}
# RunbconsoleQ367: How do you use Amanda?
Section titled “Q367: How do you use Amanda?”Answer:
# Installapt install amanda-server amanda-client
# Configure# /etc/amanda/DailySet1/amanda.conf
# Create backupamdump DailySet1
# Restoreamrecover DailySet1Q368: How do you use Restic?
Section titled “Q368: How do you use Restic?”Answer:
# Initializerestic init --repo /backup
# Backuprestic -r /backup backup /data
# Snapshotsrestic -r /backup snapshots
# Restorerestic -r /backup restore latest --target /restore
# Checkrestic -r /backup check
# Forget oldrestic -r /backup forget --keep-daily 7 --keep-weekly 4Q369: How do you use Borg?
Section titled “Q369: How do you use Borg?”Answer:
# Initializeborg init --encryption=repkey /backup
# Backupborg create /backup::archive-$(date +%Y%m%d) /data
# Listborg list /backup
# Mountborg mount /backup::archive-2023-01-01 /mnt
# Extractborg extract /backup::archive-2023-01-01
# Pruneborg prune /backup --keep-daily 7 --keep-weekly 4 --keep-monthly 6Q370: How do you create backup script?
Section titled “Q370: How do you create backup script?”Answer:
#!/bin/bashDATE=$(date +%Y%m%d)BACKUP_DIR="/backup"SOURCE="/data"
# MySQL backupmysqldump -u root -p"$MYSQL_PASSWORD" --all-databases | gzip > "$BACKUP_DIR/mysql-$DATE.sql.gz"
# Files backuprsync -avz --delete \ --exclude='*.log' \ --exclude='cache/' \ "$SOURCE/" "$BACKUP_DIR/data-$DATE/"
# Cleanup old (30 days)find "$BACKUP_DIR" -type f -mtime +30 -deletefind "$BACKUP_DIR" -type d -mtime +30 -exec rm -rf {} \;
echo "Backup completed: $DATE"Linux High Availability
Section titled “Linux High Availability”Q371: How do you use keepalived?
Section titled “Q371: How do you use keepalived?”Answer:
vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass password } virtual_ipaddress { 192.168.1.100 dev eth0 label eth0:vip }}Q372: How do you use Pacemaker?
Section titled “Q372: How do you use Pacemaker?”Answer:
# Setuppcs host auth node1 node2pcs cluster setup mycluster node1 node2
# Resourcespcs resource create VIP ocf:heartbeat:IPaddr2 ip=192.168.1.100 cidr_netmask=24 op monitor interval=30s
# Constraintspcs constraint location VIP rule score=200 pingd 100
# Statuspcs statusQ373: How do you use Corosync?
Section titled “Q373: How do you use Corosync?”Answer:
totem { version: 2 cluster_name: mycluster transport: udpu}nodelist { node { ring0_addr: 192.168.1.10 nodeid: 1 } node { ring0_addr: 192.168.1.11 nodeid: 2 }}quorum { provider: corosync_votequorum}Q374: How do you configure DRBD?
Section titled “Q374: How do you configure DRBD?”Answer:
resource r0 { on node1 { device /dev/drbd0; disk /dev/sdb1; address 192.168.1.10:7789; meta-disk internal; } on node2 { device /dev/drbd0; disk /dev/sdb1; address 192.168.1.11:7789; meta-disk internal; }}
# Initializedrbdadm create-md r0drbdadm up r0drbdadm primary --force r0Q375: How do you use GlusterFS?
Section titled “Q375: How do you use GlusterFS?”Answer:
# Installapt install glusterfs-server
# Add peersgluster peer probe node2
# Create volumegluster volume create gv0 replica 2 \ node1:/brick1/gv0 \ node2:/brick1/gv0
# Startgluster volume start gv0
# Mountmount -t glusterfs node1:/gv0 /mntQ376: How do you use Ceph?
Section titled “Q376: How do you use Ceph?”Answer:
# Installapt install ceph-mon ceph-osd ceph-mgr ceph-mds
# Deployceph-deploy new node1ceph-deploy install node1ceph-deploy mon create-initial
# Create OSDceph-deploy osd create --data /dev/sdb node1
# Create poolceph osd pool create mypool 100
# Mountmount -t ceph node1:/ /mnt/cephQ377: How do you use Haproxy with keepalived?
Section titled “Q377: How do you use Haproxy with keepalived?”Answer:
# haproxy.cfgglobal log /dev/log local0 maxconn 4000
frontend http bind *:80 default_backend servers
backend servers balance roundrobin server s1 192.168.1.10:80 check server s2 192.168.1.11:80 check
# keepalivedvrrp_script haproxy { script "killall -0 haproxy" interval 2 weight 2}Q378: How do you configure MySQL with HA?
Section titled “Q378: How do you configure MySQL with HA?”Answer:
# MHA# Installapt install mha4mysql-node mha4mysql-manager
# Configure# /etc/app1.cnf[server default]manager_workdir=/var/log/masterha/app1manager_log=/var/log/masterha/app1.logremote_workdir=/var/log/masterha
[server1]hostname=192.168.1.10candidate_master=1
[server2]hostname=192.168.1.11Q379: How do you use Redis Sentinel?
Section titled “Q379: How do you use Redis Sentinel?”Answer:
# sentinel.confsentinel monitor mymaster 192.168.1.10 6379 2sentinel down-after-milliseconds mymaster 5000sentinel failover-timeout mymaster 180000sentinel parallel-syncs mymaster 1
# Startredis-sentinel /etc/redis/sentinel.conf
# ClientJedisSentinelPool pool = new JedisSentinelPool("mymaster", sentinels);Q380: How do you use Consul?
Section titled “Q380: How do you use Consul?”Answer:
# Installapt install consul
# Start agentconsul agent -server -bootstrap-expect=3 -data-dir=/tmp/consul -node=node1
# Join clusterconsul join 192.168.1.10
# Serviceconsul services register
# Health checkcurl http://localhost:8500/v1/health/service/myserviceLinux Networking Services
Section titled “Linux Networking Services”Q381: How do you configure DHCP server?
Section titled “Q381: How do you configure DHCP server?”Answer:
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.1; option subnet-mask 255.255.255.0; option domain-name-servers 8.8.8.8, 8.8.4.4; default-lease-time 600; max-lease-time 7200;}Q382: How do you configure BIND DNS?
Section titled “Q382: How do you configure BIND DNS?”Answer:
zone "example.com" { type master; file "forward.zone";};
zone "1.168.192.in-addr.arpa" { type master; file "reverse.zone";};
# forward.zone$TTL 86400@ IN SOA ns1.example.com. admin.example.com. ( 2023010101 3600 1800 604800 86400)@ IN NS ns1.example.com.ns1 IN A 192.168.1.10www IN A 192.168.1.20Q383: How do you configure OpenVPN?
Section titled “Q383: How do you configure OpenVPN?”Answer:
# Server configport 1194proto udpdev tunca ca.crtcert server.crtkey server.keydh dh.pemserver 10.8.0.0 255.255.255.0ifconfig-pool-persist ipp.txtpush "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 8.8.8.8"
# Client configclientdev tunproto udpremote vpn.example.com 1194ca ca.crtcert client.crtkey client.keyQ384: How do you configure WireGuard?
Section titled “Q384: How do you configure WireGuard?”Answer:
# Server[Interface]Address = 10.0.0.1/24ListenPort = 51820PrivateKey = <server-private-key>
[Peer]PublicKey = <client-public-key>AllowedIPs = 10.0.0.2/32
# Client[Interface]Address = 10.0.0.2/24PrivateKey = <client-private-key>
[Peer]PublicKey = <server-public-key>Endpoint = vpn.example.com:51820AllowedIPs = 0.0.0.0/0Q385: How do you configure Squid proxy?
Section titled “Q385: How do you configure Squid proxy?”Answer:
http_port 3128acl localnet src 192.168.1.0/24http_access allow localnethttp_access deny all
cache_dir ufs /var/spool/squid 10000 16 256maximum_object_size 4096 MB
# Authenticationauth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwdacl authenticated proxy_auth REQUIREDhttp_access allow authenticatedQ386: How do you configure Postfix with SMTP auth?
Section titled “Q386: How do you configure Postfix with SMTP auth?”Answer:
smtpd_sasl_type = dovecotsmtpd_sasl_path = private/authsmtpd_sasl_auth_enable = yessmtpd_sasl_security_options = noanonymoussmtpd_sasl_local_domain = $myhostname
# /etc/postfix/master.cfsubmission inet n - - - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,rejectQ387: How do you configure Dovecot with SASL?
Section titled “Q387: How do you configure Dovecot with SASL?”Answer:
service auth { unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix }}
# /etc/dovecot/10-auth.confauth_mechanisms = plain login!include auth-system.conf.extQ388: How do you configure Samba?
Section titled “Q388: How do you configure Samba?”Answer:
[global] workgroup = WORKGROUP security = user map to guest = Bad User
[shared] path = /srv/samba/shared browsable = yes writable = yes guest ok = no valid users = @smbgroupQ389: How do you configure NFSv4?
Section titled “Q389: How do you configure NFSv4?”Answer:
# Server /etc/exports/exports *(rw,sync,fsid=0,no_subtree_check,no_root_squash)
# Clientmount -t nfs4 server:/ /mnt/nfs
# Or in fstabserver:/ /mnt/nfs nfs4 defaults,_netdev 0 0Q390: How do you configure iSCSI target?
Section titled “Q390: How do you configure iSCSI target?”Answer:
# Targettargetcli/> create iqn.2023-01.com.example:storage.lun0/> /backstores/block create name=block1 dev=/dev/sdb/> /iqn.2023-01.com.example:storage.lun0/luns create /backstores/block/block1/> /iqn.2023-01.com.example:storage.lun0/acls create iqn.2023-01.com.example:client/> saveconfigLinux Advanced Topics
Section titled “Linux Advanced Topics”Q391: How do you use eBPF?
Section titled “Q391: How do you use eBPF?”Answer:
# Install bpftraceapt install bpftrace
# Tracebtrace -p PIDbtrace /path/to/script.bt
# Using bpfccapt install bpfcc-toolsexecsnoop-bpfccopensnoop-bpfccfunclatency-bpfcc
# Write BPF programcat > test.bt <<EOFBEGIN{ printf("Tracing... Hit Ctrl-C to end.\n")}kprobe:do_nice{ printf("%s %d\n", comm, arg1)}EOFbtrace test.btQ392: How do you use cgroups v2?
Section titled “Q392: How do you use cgroups v2?”Answer:
# Create cgroupmkdir -p /sys/fs/cgroup/mygroup
# Set limitsecho 100000000 > /sys/fs/cgroup/mygroup/cpu.maxecho 1G > /sys/fs/cgroup/mygroup/memory.max
# Add processecho PID > /sys/fs/cgroup/mygroup/cgroup.procs
# Make persistent# /etc/cgconfig.confgroup mygroup { cpu { cpu.max = "100000000"; } memory { memory.max = "1073741824"; }}Q393: How do you use namespaces?
Section titled “Q393: How do you use namespaces?”Answer:
# Network namespaceip netns add redip netns exec red ip link
# User namespaceunshare --user
# PID namespaceunshare --pid --fork --mount-proc
# Mount namespaceunshare --mount
# Combinedunshare --mount --user --pid --fork --mount-proc --map-root-userQ394: How do you use seccomp?
Section titled “Q394: How do you use seccomp?”Answer:
# Default profiledocker run --rm -it --security-opt seccomp=default hello-world
# Custom profilecat > /etc/docker/seccomp.json <<EOF{ "defaultAction": "SCMP_ACT_ERRNO", "architectures": ["SCMP_ARCH_X86_64"], "syscalls": [ {"names": ["read", "write"], "action": "SCMP_ACT_ALLOW"} ]}EOFQ395: How do you use Linux capabilities?
Section titled “Q395: How do you use Linux capabilities?”Answer:
# Check capabilitiesgetcap -r /usr/bin
# Add capabilitysetcap cap_net_raw+ep /usr/bin/ping
# Checkgetcap /usr/bin/ping
# Removesetcap -r /usr/bin/ping
# Check processcat /proc/PID/status | grep CapQ396: How do you use overlay filesystem?
Section titled “Q396: How do you use overlay filesystem?”Answer:
# Mount overlaymount -t overlay overlay -o lowerdir=/lower,upperdir=/upper,workdir=/work /merged
# In Docker# Uses overlay2 by default
# Kernel modulemodprobe overlayQ397: How do you use FUSE?
Section titled “Q397: How do you use FUSE?”Answer:
# Installapt install fuse libfuse-dev
# Example using sshfssshfs user@host:/remote /local/mount
# Unmountfusermount -u /local/mount
# List availablels /dev/fusecat /proc/filesystems | grep fuseQ398: How do you use Stratis?
Section titled “Q398: How do you use Stratis?”Answer:
# Installapt install stratisd stratis-cli
# Startsystemctl start stratisd
# Create poolstratis pool create mypool /dev/sdb /dev/sdc
# Create filesystemstratis fs create mypool myfs
# Mountmount /stratis/mypool/myfs /mnt
# Liststratis pool liststratis fs listQ399: How do you use VDO (Virtual Data Optimizer)?
Section titled “Q399: How do you use VDO (Virtual Data Optimizer)?”Answer:
# Installapt install vdo kmod-kvdo
# Create VDOvdo create --name=vdo0 --device=/dev/sdb --vdoLogicalSize=100G
# Formatmkfs.xfs /dev/mapper/vdo0
# Mountmount /dev/mapper/vdo0 /mnt
# Deduplicationvdo enableDeduplication vdo0vdo enableCompression vdo0Q400: How do you use dm-cache?
Section titled “Q400: How do you use dm-cache?”Answer:
# Create cachedmsetup create cache0 --table "0 2097152 cache /dev/sda3 /dev/sdb1 /dev/sdc1 128 2 checkpoint 2 threshold 2"
# Check statusdmsetup status cache0
# Removedmsetup remove cache0Questions 401-500
Section titled “Questions 401-500”Q401: How do you configure Linux audit rules?
Section titled “Q401: How do you configure Linux audit rules?”Answer:
# Monitor file changesauditctl -w /etc/passwd -p wa -k passwd_changeauditctl -w /etc/shadow -p wa -k shadow_change
# Monitor directoryauditctl -w /var/www/html -p r -k web_access
# Monitor commandsauditctl -w /usr/bin/rm -p x -k rm_command
# List rulesauditctl -l
# Searchausearch -k passwd_changeaureport -fQ402: How do you use AIDE for integrity?
Section titled “Q402: How do you use AIDE for integrity?”Answer:
# Installapt install aide
# Initializeaideinit
# Update after changesaide --update
# Checkaide --check
# Configuration# /etc/aide/aide.conf/etc/pam.d/ NORMAL/etc/shadow NORMAL/var/log/ LOG!/var/log/*.logQ403: How do you configure Lynis security audit?
Section titled “Q403: How do you configure Lynis security audit?”Answer:
# Installapt install lynis
# Auditlynis audit systemlynis audit system --profile custom.prf
# Quick auditlynis quick
# Updatelynis update infoQ404: How do you use rkhunter?
Section titled “Q404: How do you use rkhunter?”Answer:
# Installapt install rkhunter
# Updaterkhunter --update
# Checkrkhunter --check
# Cron# /etc/cron.daily/rkhunter#!/bin/shrkhunter --check --skip-keypress --report-warnings-onlyQ405: How do you use chkrootkit?
Section titled “Q405: How do you use chkrootkit?”Answer:
# Installapt install chkrootkit
# Checkchkrootkit
# Specificchkrootkit -q
# Cron# /etc/cron.daily/chkrootkit#!/bin/shchkrootkit | grep -v "not found"Q406: How do you use ClamAV?
Section titled “Q406: How do you use ClamAV?”Answer:
# Installapt install clamav
# Updatefreshclam
# Scanclamscan -r /homeclamscan -r --remove /home
# Daemonsystemctl start clamav-freshclamsystemctl start clamav-daemon
# On-accessclamfs /etc/clamfs/clamfs.xmlQ407: How do you use OSSEC?
Section titled “Q407: How do you use OSSEC?”Answer:
# Installapt install ossec-hids-agent
# Configure# /var/ossec/etc/ossec.conf<active-response> <disabled>no</disabled></active-response>
# Start/var/ossec/bin/ossec-control start
# View alertstail -f /var/ossec/logs/alerts/alerts.logQ408: How do you use Tripwire?
Section titled “Q408: How do you use Tripwire?”Answer:
# Installapt install tripwire
# Initializetwadmin --create-polfile /etc/tripwire/tw.poltripwire --init
# Checktripwire --check
# Updatetripwire --update --accept-all
# Update policytwadmin --create-polfile /etc/tripwire/twpol.txttripwire --update-policy /etc/tripwire/twpol.txtQ409: How do you use Suricata?
Section titled “Q409: How do you use Suricata?”Answer:
# Installapt install suricata
# Update rulessuricata-update
# Runsuricata -i eth0suricata -c /etc/suricata/suricata.yaml -i eth0
# Logtail -f /var/log/suricata/fast.log
# Testsuricata -t /etc/suricata/suricata.yamlQ410: How do you use Snort?
Section titled “Q410: How do you use Snort?”Answer:
# Installapt install snort
# Configure# /etc/snort/snort.confipvar HOME_NET 192.168.1.0/24var RULE_PATH /etc/snort/rules
# Test rulessnort -T -c /etc/snort/snort.conf
# Runsnort -i eth0 -c /etc/snort/snort.conf
# Logsls /var/log/snort/Q411: How do you configure Linux audit for compliance?
Section titled “Q411: How do you configure Linux audit for compliance?”Answer:
# PCI-DSS requirementsauditctl -w /etc/passwd -p wa -k pci_passwdauditctl -w /etc/shadow -p wa -k pci_shadowauditctl -w /var/log/ -p wa -k pci_logsauditctl -w /etc/sudoers -p wa -k pci_sudoers
# CIS benchmarksauditctl -w /etc/group -p wa -k group_changeauditctl -w /etc/hosts -p wa -k hosts_changeauditctl -w /etc/sysctl.conf -p wa -k sysctl_changeQ412: How do you use osquery?
Section titled “Q412: How do you use osquery?”Answer:
# Installapt install osquery
# Interactiveosqueryi
# QueriesSELECT * FROM users;SELECT * FROM processes WHERE name = 'nginx';SELECT * FROM listening_ports;SELECT * FROM file_events;
# Daemonsystemctl enable osquerydsystemctl start osquerydQ413: How do you use Sysdig?
Section titled “Q413: How do you use Sysdig?”Answer:
# Installapt install sysdig
# Capturesysdig -w dump.scapsysdig -w dump.scap -C 100 # 100MB files
# Analyzesysdig -r dump.scapsysdig -r dump.scap -c "topprocs_cpu"sysdig -r dump.scap -c "topfiles_bytes"
# Livesysdig -c topprocs_cpusysdig -c fdcount_by proc.name "evt.type=read"Q414: How do you use LinPEAS?
Section titled “Q414: How do you use LinPEAS?”Answer:
# Downloadcurl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh -o linpeas.sh
# Runchmod +x linpeas.sh./linpeas.sh
# Options./linpeas.sh -s # stealth./linpeas.sh -o # only interesting./linpeas.sh -P # password sprayQ415: How do you use linux-exploit-suggester?
Section titled “Q415: How do you use linux-exploit-suggester?”Answer:
# Downloadcurl -L https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -o les.sh
# Runchmod +x les.sh./les.sh
# With kernel version./les.sh -k 5.4.0
# Show exploits only./les.sh -pQ416: How do you use Lynis for hardening?
Section titled “Q416: How do you use Lynis for hardening?”Answer:
# Installapt install lynis
# Auditlynis audit system
# Specific testslynis audit system --tests "AUTH-9262"
# Reportlynis show report
# Cron job# /etc/cron.d/lynis0 3 * * * root /usr/bin/lynis audit system --cronjobQ417: How do you use OpenSCAP?
Section titled “Q417: How do you use OpenSCAP?”Answer:
# Installapt install openscap-scanner scap-security-guide
# List profilesoscap info /usr/share/xml/scap/ssg/content/ssg-ubuntu2004-ds.xml
# Scanoscap xccdf eval --profile xccdf_org.ssgproject.content_profile_cis \ --results scan-results.xml /usr/share/xml/scap/ssg/content/ssg-ubuntu2004-ds.xml
# Generate reportoscap xccdf generate report scan-results.html scan-results.xmlQ418: How do you use Cockpit?
Section titled “Q418: How do you use Cockpit?”Answer:
# Installapt install cockpit
# Enablesystemctl enable --now cockpit.socket
# Access# https://server:9090
# Modulesapt install cockpit-storagedapt install cockpit-networkmanagerapt install cockpit-packagekitQ419: How do you use Webmin?
Section titled “Q419: How do you use Webmin?”Answer:
# Installapt install webmin
# Access# https://server:10000
# Modules available# System, Servers, Networking, Hardware, Clusters, OthersQ420: How do you use Cockpit with Kubernetes?
Section titled “Q420: How do you use Cockpit with Kubernetes?”Answer:
# Installapt install cockpit-podman
# Enablesystemctl enable --now cockpit.socket
# Podman# https://server:9090/podman
# Kubernetes# Install kubernetes pluginapt install cockpit-kubernetesQuestions 421-500
Section titled “Questions 421-500”Q421: How do you optimize Linux for containers?
Section titled “Q421: How do you optimize Linux for containers?”Answer:
# Kernel parametersnet.core.somaxconn = 1024net.ipv4.ip_local_port_range = 1024 65535fs.file-max = 2097152kernel.pid_max = 4194304
# Disable swapswapoff -a
# Transparent huge pagesecho never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag
# SELinux/AppArmorsetenforce 0Q422: How do you optimize Linux for databases?
Section titled “Q422: How do you optimize Linux for databases?”Answer:
# Memoryvm.swappiness = 10vm.dirty_ratio = 15vm.dirty_background_ratio = 5
# Networknet.core.rmem_max = 134217728net.core.wmem_max = 134217728
# File descriptorsfs.file-max = 65535
# Kernelkernel.shmmax = 68719476736kernel.shmall = 4294967296
# Limits.conf* soft nofile 65535* hard nofile 65535Q423: How do you optimize Linux for HPC?
Section titled “Q423: How do you optimize Linux for HPC?”Answer:
# CPU governorecho performance > /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
# Network# Use RDMAmodprobe mlx5_core# ormodprobe rdma_ucm
# Filesystem# Use Lustre, GPFS, or parallel fs# Mount with noatimeQ424: How do you use tuned?
Section titled “Q424: How do you use tuned?”Answer:
# Installapt install tuned
# List profilestuned-adm list
# Active profiletuned-adm active
# Set profiletuned-adm profile throughput-performancetuned-adm profile virtual-guest
# Verifytuned-adm verifyQ425: How do you use ktune?
Section titled “Q425: How do you use ktune?”Answer:
# Installapt install ktune
# Configure# /etc/ktune/ktune.sh#!/bin/bashfor cpu in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo performance > $cpudone
# Enablesystemctl enable ktunesystemctl start ktuneQ426: How do you configure CPU isolation?
Section titled “Q426: How do you configure CPU isolation?”Answer:
# Add kernel parameterGRUB_CMDLINE_LINUX_DEFAULT="isolcpus=1,2,3"
# Update GRUBupdate-grub
# Or using cgroups# cset shield -c 1,2,3Q427: How do you use cpuset?
Section titled “Q427: How do you use cpuset?”Answer:
# Installapt install cpuset
# Create cpusetcpuset -c -g system:myapp
# Set CPUscpuset -g cpus:0-3 system:myapp
# Add processcpuset -a PID system:myapp
# Checkcpuset -g system:myappQ428: How do you use taskset?
Section titled “Q428: How do you use taskset?”Answer:
# Set CPU affinitytaskset -c 0,1 commandtaskset -p 0x03 PID
# Show affinitytaskset -p PID
# Run on corestaskset -c 0-3 myappQ429: How do you use numactl?
Section titled “Q429: How do you use numactl?”Answer:
# Show NUMA topologynumactl --hardwarenumactl --show
# Run on specific nodenumactl --membind=0 commandnumactl --cpunodebind=0 command
# Interleavenumactl --interleave=all commandQ430: How do you use chcpu?
Section titled “Q430: How do you use chcpu?”Answer:
# Enable CPUchcpu -e 1
# Disable CPUchcpu -d 1
# Listchcpu -lQ431: How do you configure transparent huge pages?
Section titled “Q431: How do you configure transparent huge pages?”Answer:
# Check currentcat /sys/kernel/mm/transparent_hugepage/enabled
# Disableecho never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag
# Make persistent# /etc/rc.d/rc.localif test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabledfiQ432: How do you use I/O schedulers?
Section titled “Q432: How do you use I/O schedulers?”Answer:
# Checkcat /sys/block/sda/queue/scheduler
# Set deadline (for HDD)echo deadline > /sys/block/sda/queue/scheduler
# Set none (for SSD)echo none > /sys/block/sda/queue/scheduler
# Persistent# /etc/udev/rules.d/60-ioschedulers.rulesACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"Q433: How do you tune network for latency?
Section titled “Q433: How do you tune network for latency?”Answer:
# Kernel parametersnet.ipv4.tcp_low_latency = 1net.core.netdev_max_backlog = 1000
# Increase socket buffernet.ipv4.tcp_rmem = 4096 87380 16777216net.ipv4.tcp_wmem = 4096 65536 16777216Q434: How do you use BBR congestion control?
Section titled “Q434: How do you use BBR congestion control?”Answer:
# Checksysctl net.ipv4.tcp_available_congestion_control
# Enablemodprobe tcp_bbr
# Configuresysctl -w net.core.default_qdisc=fqsysctl -w net.ipv4.tcp_congestion_control=bbr
# Make persistentecho "tcp_bbr" >> /etc/modules-load.d/modules.confQ435: How do you configure huge pages for database?
Section titled “Q435: How do you configure huge pages for database?”Answer:
# Checkcat /proc/meminfo | grep Huge
# Setsysctl -w vm.nr_hugepages=128
# Persistent# /etc/sysctl.confvm.nr_hugepages = 128
# For PostgreSQL# postgresql.confshared_huge_pages = onQ436: How do you use zswap?
Section titled “Q436: How do you use zswap?”Answer:
# Enablemodprobe zswap
# Checkcat /sys/module/zswap/parameters/enabled
# Compressor# /etc/modprobe.d/zswap.confoptions zswap compressor=lz4
# Pool# /etc/modprobe.d/zswap.confoptions zswap zpool=z3foldQ437: How do you use zram?
Section titled “Q437: How do you use zram?”Answer:
# Load modulemodprobe zram num_devices=2
# Configureecho lz4 > /sys/block/zram0/comp_algorithmecho 1G > /sys/block/zram0/disksize
# Format and mountmkswap /dev/zram0swapon /dev/zram0 -p 100
# Multiple devicesecho 512M > /dev/zram1/disksizemkswap /dev/zram1swapon /dev/zram1Q438: How do you use earlyoom?
Section titled “Q438: How do you use earlyoom?”Answer:
# Installapt install earlyoom
# Configure# /etc/default/earlyoomEARLYOOM_ARGS="-m 10 -r 60"
# Startsystemctl enable earlyoomsystemctl start earlyoomQ439: How do you configure OOM killer?
Section titled “Q439: How do you configure OOM killer?”Answer:
# Checkcat /proc/sys/vm/overcommit_memory
# Disablesysctl -w vm.overcommit_memory=2
# Adjust OOM scoreecho -15 > /proc/PID/oom_score_adj
# Never kill rootsysctl -w vm.oom_dump_tasks=1Q440: How do you use early page reclaim?
Section titled “Q440: How do you use early page reclaim?”Answer:
# Checkcat /proc/sys/vm/pagecache
# Configuresysctl -w vm.pagecache=1
# Make persistent# /etc/sysctl.confvm.pagecache = 1Questions 441-500
Section titled “Questions 441-500”Q441: How do you configure journald?
Section titled “Q441: How do you configure journald?”Answer:
[Journal]SystemMaxUse=500MSystemKeepFree=100MRuntimeMaxUse=200MRuntimeKeepFree=50MMaxFileSec=1monthForwardToSyslog=yesCompress=yes
# Reloadsystemctl restart systemd-journaldQ442: How do you use journalctl?
Section titled “Q442: How do you use journalctl?”Answer:
# View alljournalctl
# Sincejournalctl --since "1 hour ago"journalctl --since "2023-01-01"
# Untiljournalctl --until "2023-01-01"
# Priorityjournalctl -p err
# Servicejournalctl -u nginx
# Followjournalctl -f
# Disk usagejournalctl --disk-usageQ443: How do you configure rsyslog?
Section titled “Q443: How do you configure rsyslog?”Answer:
# Modules$ModLoad imudp$UDPServerRun 514$ModLoad imtcp$InputTCPServerRun 514
# Templates$template RemoteLogs,"/var/log/%HOSTNAME%/%programname%.log"
# Forward*.* @@remote-host:514
# Filter:programname, isequal, "nginx" /var/log/nginx.log& ~Q444: How do you configure logrotate?
Section titled “Q444: How do you configure logrotate?”Answer:
/var/log/nginx/*.log { daily missingok rotate 14 compress delaycompress notifempty create 0640 www-data adm sharedscripts postrotate [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` endscript}Q445: How do you centralize logs?
Section titled “Q445: How do you centralize logs?”Answer:
# Using rsyslog# Server$ModLoad imtcp$InputTCPServerRun 514
# Client*.* @@server:514
# Or using ELK# Filebeat -> Logstash -> Elasticsearch -> Kibana
# Or using Loki# Promtail -> Loki -> GrafanaQ446: How do you use Elasticsearch?
Section titled “Q446: How do you use Elasticsearch?”Answer:
# Installdocker run -d -p 9200:9200 -p 9300:9300 elasticsearch
# Create indexcurl -X PUT "localhost:9200/myindex"
# Add documentcurl -X POST "localhost:9200/myindex/_doc" -H 'Content-Type: application/json' -d'{"field":"value"}'
# Searchcurl -X GET "localhost:9200/myindex/_search"Q447: How do you use Kibana?
Section titled “Q447: How do you use Kibana?”Answer:
# Installdocker run -d -p 5601:5601 kibana
# Connect to Elasticsearch# Kibana -> Settings -> Indices
# Create visualization# Visualize -> Create new
# Create dashboard# Dashboard -> Create newQ448: How do you use Grafana with Prometheus?
Section titled “Q448: How do you use Grafana with Prometheus?”Answer:
# Add datasource# Configuration -> Data Sources -> Add Prometheus# URL: http://prometheus:9090
# Add dashboard# Dashboards -> Import# JSON or IDQ449: How do you use Loki?
Section titled “Q449: How do you use Loki?”Answer:
# Installdocker run -d -p 3100:3100 grafana/loki
# Configure Promtail# /etc/promtail/promtail.yamlserver: http_listen_port: 9080 grpc_listen_port: 0clients: - url: http://loki:3100/api/prom/pushscrape_configs:- job_name: system static_configs: - targets: [localhost] labels: job: varlogs __path__: /var/log/*.logQ450: How do you use Alertmanager?
Section titled “Q450: How do you use Alertmanager?”Answer:
# Installdocker run -d -p 9093:9093 prom/alertmanager
# Configure# /etc/alertmanager/alertmanager.ymlroute: group_by: ['alertname'] receiver: 'email'receivers:- name: 'email' email_configs: - to: 'admin@example.com' from: 'alertmanager@example.com' smarthost: 'smtp.example.com:587' auth_username: 'user' auth_password: 'pass'Q451: How do you configure Prometheus alerting?
Section titled “Q451: How do you configure Prometheus alerting?”Answer:
groups:- name: alerts rules: - alert: HighCPU expr: 100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80 for: 5m labels: severity: warning annotations: summary: "High CPU usage on {{ $labels.instance }}"Q452: How do you use blackbox exporter?
Section titled “Q452: How do you use blackbox exporter?”Answer:
# Installdocker run -d -p 9115:9110 prom/blackbox-exporter
# Configure# /etc/blackbox/blackbox.ymlmodules: http_2xx: prober: http timeout: 5s
# Prometheus- job_name: blackbox metrics_path: /probe params: module: [http_2xx] static_configs: - targets: - https://example.com relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instanceQ453: How do you use node exporter?
Section titled “Q453: How do you use node exporter?”Answer:
# Installdocker run -d -p 9100:9100 prom/node-exporter
# Collectors# --collector.cpu# --collector.meminfo# --collector.diskstats# --collector.netdev
# Textfile collector# --collector.textfile.directory=/var/lib/node_exporter/textfile_collectorQ454: How do you use cadvisor?
Section titled “Q454: How do you use cadvisor?”Answer:
# Installdocker run -d \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --publish=8080:8080 \ gcr.io/cadvisor/cadvisor
# Access# http://localhost:8080Q455: How do you use Pushgateway?
Section titled “Q455: How do you use Pushgateway?”Answer:
# Installdocker run -d -p 9091:9091 prom/pushgateway
# Push metricsecho "metric_name 3.14" | curl --data-binary @- http://pushgateway:9091/metrics/job/some_job
# Deletecurl -X DELETE http://pushgateway:9091/metrics/job/some_jobQ456: How do you use Prometheus Operator?
Section titled “Q456: How do you use Prometheus Operator?”Answer:
# Installkubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/master/bundle.yaml
# Create ServiceMonitorapiVersion: monitoring.coreos.com/v1kind: ServiceMonitormetadata: name: myappspec: selector: matchLabels: app: myapp endpoints: - port: webQ457: How do you configure Thanos?
Section titled “Q457: How do you configure Thanos?”Answer:
# Sidecar# In Prometheusexternal_labels: cluster: 'cluster1' replica: 'a'thanos: sidecar: tsdb: /prometheus grpc-address: :10901 http-address: :10902Q458: How do you use Cortex?
Section titled “Q458: How do you use Cortex?”Answer:
cortex: image: cortexproject/cortex:latest ports: - "9009:9009" - "9091:9091" command: - -config.file=/etc/cortex/cortex.yamlQ459: How do you use Mimir?
Section titled “Q459: How do you use Mimir?”Answer:
# Installdocker run -d -p 9009:9009 -p 9091:9091 grafana/mimir
# Configure# /etc/mimir/config.yamlschema: configs: - from: 2023-01-01 store: tsdb object_store: files schema: v11 index: prefix: index_ period: 168hQ460: How do you use VictoriaMetrics?
Section titled “Q460: How do you use VictoriaMetrics?”Answer:
# Installdocker run -d -p 8428:8428 victoriametrics/victorialogs-datasource
# Singledocker run -d -p 8428:8428 -v /victoria-data:/victoria-data victoriametrics/victoria-metrics
# Clusterdocker run -d -p 8480:8480 victoriametrics/vmclusterQuestions 461-500
Section titled “Questions 461-500”Q461: How do you use GoAccess?
Section titled “Q461: How do you use GoAccess?”Answer:
# Installapt install goaccess
# Real-timegoaccess /var/log/nginx/access.log -o /var/www/html/report.html --real-time-html
# Generate staticgoaccess /var/log/nginx/access.log -o report.htmlQ462: How do you use GoAccess with AWS?
Section titled “Q462: How do you use GoAccess with AWS?”Answer:
# Download logsaws s3 cp s3://bucket/logs/ ./logs/
# Analyzegoaccess access.log*.log -a -o report.html
# With GeoIPgoaccess access.log -a -o report.html --geoip-database=GeoLite2-City.mmdbQ463: How do you use Analog?
Section titled “Q463: How do you use Analog?”Answer:
# Installapt install analog
# Configure# /etc/analog.cfgLOGFILE /var/log/apache2/access.logOUTFILE /var/www/html/analog.htmlHOSTNAME myserver.comQ464: How do you use AWStats?
Section titled “Q464: How do you use AWStats?”Answer:
# Installapt install awstats
# Configure# /etc/awstats/awstats.mysite.confSiteName="mysite.com"LogFile="/var/log/apache2/access.log"DirData="/var/lib/awstats"
# Generateawstats_updateall.pl nowawstats -config=mysite -output -staticlinks > /var/www/html/awstats.htmlQ465: How do you use Piwik/Matomo?
Section titled “Q465: How do you use Piwik/Matomo?”Answer:
# Install via Dockerdocker run -d -p 8080:80 \ -v /opt/matomo:/var/www/html \ -v /opt/matomo:/var/lib/mysql \ matomo
# Configure web server# Add tracking code to pages<script> var _paq = window._paq = window._paq || []; _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="//matomo.example.com/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '1']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })();</script>Q466: How do you use Netflow analyzer?
Section titled “Q466: How do you use Netflow analyzer?”Answer:
# Install nfdumpapt install nfdump nfcapd
# Capturenfcapd -w -D -i eth0 -z -n "ip,/var/cache/netflow,YYYYMMDD,HHMM"
# Analyzenfdump -r nfcapd.202301011300 -a -s ip/bytes
# Filternfdump -r nfcapd.202301011300 'src ip 192.168.1.0/24'Q467: How do you use sFlow?
Section titled “Q467: How do you use sFlow?”Answer:
# Installapt install sflowtool
# Configure switch# sflow collector <ip> <port>
# Analyzesflowtool -l eth0sflowtool -r sflow.dat -jsonQ468: How do you use IPFIX?
Section titled “Q468: How do you use IPFIX?”Answer:
# Installapt install ipfixprobe
# Capture# Configure exporter
# Analyze# Use elasticsearch or other collectorsQ469: How do you use Zeek (Bro)?
Section titled “Q469: How do you use Zeek (Bro)?”Answer:
# Installapt install zeek
# Runzeek -i eth0
# Logsls /var/log/zeek/current/
# Analysiszeek-cut < conn.log | awk '{print $5}' | sort | uniq -c | sort -rnQ470: How do you use Moloch?
Section titled “Q470: How do you use Moloch?”Answer:
# Install# Using Dockerdocker run -d --name moloch \ -e ELASTICSEARCH=http://localhost:9200 \ -p 8000:8000 \ -p 9200:9200 \ aircan/moloch
# Configure capture# /data/moloch/etc/config.iniQ471: How do you use ntopng?
Section titled “Q471: How do you use ntopng?”Answer:
# Installapt install ntopng
# Configure# /etc/ntopng/ntopng.conf-G=/var/run/ntopng.pid-i=eth0-w=3000
# Startsystemctl start ntopng
# Access# http://localhost:3000Q472: How do you use ntop?
Section titled “Q472: How do you use ntop?”Answer:
# Installapt install ntop
# Runntop -i eth0
# Access# http://localhost:3000Q473: How do you use Darkstat?
Section titled “Q473: How do you use Darkstat?”Answer:
# Installapt install darkstat
# Configure# /etc/darkstat/init.cfgINTERFACE="-i eth0"START_DAEMON=1
# Startsystemctl start darkstatQ474: How do you use BandwidthD?
Section titled “Q474: How do you use BandwidthD?”Answer:
# Installapt install bandwidthd
# Configure# /etc/bandwidthd/bandwidthd.confsubnet 192.168.1.0/24
# Startsystemctl start bandwidthdQ475: How do you use vnStat?
Section titled “Q475: How do you use vnStat?”Answer:
# Installapt install vnstat
# Configure# /etc/vnstat.confInterface "eth0"
# Startsystemctl start vnstat
# Viewvnstatvnstat -hvnstat -lvnstat -mQ476: How do you use iperf3?
Section titled “Q476: How do you use iperf3?”Answer:
# Serveriperf3 -s
# Clientiperf3 -c server-ip
# Test bandwidthiperf3 -c server-ip -P 4 # parallel
# UDP testiperf3 -c server-ip -u -b 1GQ477: How do you use tcpreplay?
Section titled “Q477: How do you use tcpreplay?”Answer:
# Installapt install tcpreplay
# Replay pcaptcpreplay -i eth0 capture.pcap
# Looptcpreplay -i eth0 -l 10 capture.pcap
# Speedtcpreplay -i eth0 -M 10 capture.pcapQ478: How do you use netsniff-ng?
Section titled “Q478: How do you use netsniff-ng?”Answer:
# Installapt install netsniff-ng
# Capturenetsniff-ng -i eth0 -o capture.pcap
# Replaynetsniff-ng -i eth0 -r capture.pcap
# BPF filternetsniff-ng -i eth0 -f "tcp port 80" -o http.pcapQ479: How do you use PF_RING?
Section titled “Q479: How do you use PF_RING?”Answer:
# Install# Download from ntop.org
# Load modulemodprobe pf_ring
# Checkcat /proc/net/pf_ring/info
# Use with applications# tcpdump -i eth0Q480: How do you use DPDK?
Section titled “Q480: How do you use DPDK?”Answer:
# Install# From dpdk.org
# Setup huge pagesecho 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
# Bind NICdpdk-devbind.py --bind igb_uio 0000:01:00.0
# Run testpmd./build/app/testpmd -l 0-3 -n 4 -- -iQuestions 481-1000 continue in next file…