meta data for this page
  •  

Ez a dokumentum egy előző változata!


Linux okosságok

BOOT probléma

GRUB menüben a „quiet” paraméter helyére „dracut rdshell”-t betenni

RAID megoldások

MYSQL mentés

Mentés (/etc/mysql/debian.cnf is kell a jelszó miatt):

mysqldump -u root -ptitok --single-transaction --opt --all-databases -R

Visszaállítás:

mysql -u root -ptitok -B adatbazis < mentes.sql

LVM snapshot készítés

lvdisplay -C -olv_name,lv_path --noheadings
lvcreate -s -L 1G -n blabla /dev/vg/blablalv
lvdisplay -C -S lv_role=snapshot

SSH kilép aciklusból az első futás után

ssh -n ...

NMON adatgyűjtés

#!/bin/sh

if [ $? -ne 0 ]; then exit 1; fi
ps -ef | grep '[n]mon ' | awk '{print $2}' | while read PID; do kill $PID; done
find /tmp/nmon/$(hostname)_* -type f -maxdepth 1 -mtime +30 -exec rm -f {} \;
# vagy betomoritve:
# find /tmp/nmon/$(hostname)_* -type f -maxdepth 1 -mtime +30 -print0 | xargs -0 tar zcvf $(hostname)_blabla.tar.gz

# Mintaveteli periodus (masodperc)
INTERVAL=60
# Meres idotartama (ora)
DURA=24

SAMPLES=`expr $DURA \* 3600 / $INTERVAL`
cd /tmp/nmon
nmon -f -s $INTERVAL -c $SAMPLES

Ismétlődő sorok számolása

cat file | sed 's/([^(]*)$/,&/' | awk -F'[,]' '{a[$2]++}END{for(k in a) print $1,k,$3,"("a[k]"x)"}'

User input default értékkel

DEFAULT="Semmit"
read -e -p "Mit akarsz?" -i "$DEFAULT" VALTOZO
VALTOZO="${VALTOZO:-$DEFAULT}"

/dev/stdin üres-e? (Van-e adat a pipe-ban?)

[ ! -t 0 ]

Bekezdésre greppelés Linux alatt (AIX: grep -p)

awk 'BEGIN{RS=ORS="\n\n";FS=OFS="\n"}/Storage Slots/

Email címek extraktálása AIX alatt

perl -wne'while(/[\w\.\-]+@[\w\.\-]+\w+/g){print "$&\n"}'

Hiányzik az "add-apt-repository":

sudo apt-get install --reinstall python-software-properties && sudo dpkg-reconfigure python-software-properties

Java install:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
java -version

Mennyi helyet foglal egy bizonyos fájl csoport?

find / -name "*\.trc" -print0 | du --files0-from=- -hc | tail -n1

Milyen felbontásokat támogat a webcam?

$ lsusb
  Bus 001 Device 002: ID 5986:0241 Acer, Inc BisonCam, NB Pro
$ lsusb -s 001:002 -v | egrep "Width|Height"
  wWidth    640
  wHeight   480
  wWidth    1280
  wHeight   1024
...

Helyhasználat listázása fájlrendszerben userenként

find / -printf '%u %k\n' | awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr[i]}}'

SWAP használat listázása processzenként

#!/bin/bash
# Get current swap usage for all running processes
# Erik Ljungstrom 27/05/2011
SUM=0
OVERALL=0
for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do
PID=`echo $DIR | cut -d / -f 3`
PROGNAME=`ps -p $PID -o comm --no-headers`
for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
do
let SUM=$SUM+$SWAP
done
echo "PID=$PID - Swap used: $SUM - ($PROGNAME )"
let OVERALL=$OVERALL+$SUM
SUM=0
done
echo "Overall swap used: $OVERALL"

Sztringek hexa értelmezésének kiküszöbölése

Pl:

$((10#`date +%H`))

A grep "-o" kapcsolójának kiváltása perl-lel

perl -lne '/reguláris kifejezés/ && print $&'

Törölt fájlok, amik nem szabadították még fel a helyet

lsof |(sed 1q; grep deleted)

BASH változó manipulációk

SyntaxMeaning
${#var} String length (number of characters in $var).
${var^} Uppercase first alphanumeric character in $var.
${var^^} Uppercase alphanumeric characters in $var.
${var^^[p,g]} Uppercase alphanumeric characters in $var matching p or g.
${parameter?err_msg},${parameter:?err_msg} If parameter set, use it, else print err_msg and abort the script with an exit status of 1. Both forms nearly equivalent. The : makes a difference only when parameter has been declared and is null.
${parameter-default},${parameter:-default} If parameter not set, use default. ${parameter-default} and ${parameter:-default} are almost equivalent. The extra : makes a difference only when parameter has been declared, but is null.
${parameter=default},${parameter:=default} If parameter not set, set it to default. Both forms nearly equivalent. The : makes a difference only when $parameter has been declared and is null.
${parameter+alt_value},${parameter:+alt_value} If parameter set, use alt_value, else use null string. Both forms nearly equivalent. The : makes a difference only when parameter has been declared and is null.
${var#Pattern} Remove from $var the shortest part of $Pattern that matches the front end of $var.
${var##Pattern} Remove from $var the longest part of $Pattern that matches the front end of $var.
${var%Pattern} Remove from $var the shortest part of $Pattern that matches the back end of $var.
${varPattern} Remove from $var the longest part of $Pattern that matches the back end of $var.
${var:pos} Variable var expanded, starting from offset pos.
${var:pos:len} Expansion to a max of len characters of variable var, from offset pos.
${var/Pattern/Replacement} First match of Pattern, within var replaced with Replacement. If Replacement is omitted, then the first match of Pattern is replaced by nothing, that is, deleted.
${var//Pattern/Replacement} Global replacement. All matches of Pattern, within var replaced with Replacement. If Replacement is omitted, then all occurrences of Pattern are replaced by nothing, that is, deleted.
${var/#Pattern/Replacement} If prefix of var matches Pattern, then substitute Replacement for Pattern.
${var/%Pattern/Replacement} If suffix of var matches Pattern, then substitute Replacement for Pattern.
${!varprefix*},${!varprefix@} Matches names of all previously declared variables beginning with varprefix.

forrás: http://tldp.org/LDP/abs/html/parameter-substitution.html

Gyakori BASH RC kódok

Exit Code Number Meaning Example Comments
1 Catchall for general errors let „var1 = 1/0” Miscellaneous errors, such as „divide by zero” and other impermissible operations
2 Misuse of shell builtins (according to Bash documentation) empty_function() {} Missing keyword or command
126 Command invoked cannot execute /dev/null Permission problem or command is not an executable
127 „command not found” illegal_command Possible problem with $PATH or a typo
128 Invalid argument to exit exit 3.14159 exit takes only integer args in the range 0 - 255 (see first footnote)
128+n Fatal error signal „n” kill -9 $PPID of script $? returns 137 (128 + 9)
130 Script terminated by Control-C Ctl-C Control-C is fatal error signal 2, (130 = 128 + 2, see above)
255* Exit status out of range exit -1 exit takes only integer args in the range 0 - 255

Hiba csatorna színezése

 $ parancs 2> >(while read line; do echo -e "\e[01;31m$line\e[0m"; done)
 

Bash színkódok törlése szövegből

sed "s,\x1B\[[0-9;]*[a-zA-Z],,g"

Dátumos prompt képernyőmentéses dokumentáláshoz

export PS1='[\u@\h \W] \D{%F %T}\n\$ '

Terminál doboz rajzolás

env printf '\u2502'

Karakterek: https://en.wikipedia.org/wiki/Box-drawing_character

Terminál kurzor pozícionálás

- Position the Cursor:

\033[<L>;<C>H
   Or
\033[<L>;<C>f
puts the cursor at line L and column C.

- Move the cursor up N lines:

\033[<N>A

- Move the cursor down N lines:

\033[<N>B

- Move the cursor forward N columns:

\033[<N>C

- Move the cursor backward N columns:

\033[<N>D

- Clear the screen, move to (0,0):

\033[2J

- Erase to end of line:

\033[K

- Save cursor position:

\033[s

- Restore cursor position:

\033[u

"Homokóra" - progress icon

v1:

a=1
sp="/-\|"
echo -n ' '
while true
do
    printf "\b${sp:a++%${#sp}:1}"
done

v2:

spinner()
{
    local pid=$1
    local delay=0.75
    local spinstr='|/-\'
    while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do
        local temp=${spinstr#?}
        printf " [%c]  " "$spinstr"
        local spinstr=$temp${spinstr%"$temp"}
        sleep $delay
        printf "\b\b\b\b\b\b"
    done
    printf "    \b\b\b\b"
}

Színkódok és sorvég karakterek kivágása szövegből

A ^M-et így: CTRL+V, CTRL+M !!

sed -i -e 's/\x1b\[[0-9;]*m//g' -e 's/^M//g' file

Parancsok csoportosítása

Új shellben:

(parancs1)

Aktuális shellben:

{ parancs1; }

Hosszú processz végeztéről értesítő email

#!/bin/bash
MAILTO="rvenyige@pcs.hu,pagoston@pcs.hu"
SSH="ssh -i /home/pagoston/.ssh/id_rsa pagoston@sapeltora "
while [ $($SSH "ps -ef | awk '{print $2}'" | grep -c "$1") -gt 0 ]; do
        sleep 60
done
echo Lefutott | mail -s "Process $1 lefutott (${hostname})" $MAILTO

Hasznos oldalak