meta data for this page
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
| Előző változat mindkét oldalonElőző változatKövetkező változat | Előző változat | ||
| linux [2019/05/20 10:21] – admin | linux [2024/03/12 16:57] (aktuális) – admin | ||
|---|---|---|---|
| Sor 1: | Sor 1: | ||
| ===== Linux okosságok ===== | ===== Linux okosságok ===== | ||
| + | |||
| + | ==== Dátum figyelés ==== | ||
| + | |||
| + | function date_diff() | ||
| + | { | ||
| + | date=' | ||
| + | epoch=$(date -d " | ||
| + | if [ " | ||
| + | #[[ " | ||
| + | echo At least 3 days ago | ||
| + | else | ||
| + | echo Too recent | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | |||
| + | ==== Reboot, ha nem megy a szabályos reboot ==== | ||
| + | |||
| + | # echo s > / | ||
| + | # echo u > / | ||
| + | # echo s > / | ||
| + | # echo b > / | ||
| + | |||
| + | This requests the kernel to do: | ||
| + | |||
| + | emergency sync of the block devices; | ||
| + | mount readonly of all filesystems; | ||
| + | again a sync; | ||
| + | force an immediate boot; (you can also use o for poweroff) | ||
| + | |||
| + | ==== dm-* device-ok felderítése ==== | ||
| + | |||
| + | find /dev/ -name " | ||
| + | ==== SCSI (re)scan ==== | ||
| + | |||
| + | #!/bin/sh | ||
| + | for I in `ls -d / | ||
| + | echo ${I} | ||
| + | echo " | ||
| + | done | ||
| + | |||
| + | #!/bin/sh | ||
| + | for I in `ls -d / | ||
| + | echo ${I} | ||
| + | echo "- - -" > ${I}/scan | ||
| + | done | ||
| + | |||
| + | |||
| + | ==== Yum-mal telepített csomagok listázása log fájlból ==== | ||
| + | |||
| + | cat / | ||
| + | ==== Disk perf. teszt DD-vel ==== | ||
| + | |||
| + | < | ||
| + | #!/bin/bash | ||
| + | echo -n "Fajl nev: " | ||
| + | read FNEV | ||
| + | echo -n "Blokk meret (Byte): " | ||
| + | read BS | ||
| + | echo -n "Fajl meret (MByte): " | ||
| + | read FS | ||
| + | COUNT=$((FS*1024*1024 / $BS)) | ||
| + | COUNT=$(echo $COUNT | sed ' | ||
| + | echo -n "Diszk irasa (dd if=/ | ||
| + | SEC=$(timex dd if=/ | ||
| + | echo " | ||
| + | </ | ||
| ==== BOOT probléma ==== | ==== BOOT probléma ==== | ||
| Sor 5: | Sor 72: | ||
| GRUB menüben a " | GRUB menüben a " | ||
| + | ==== ~/.vimrc ==== | ||
| + | |||
| + | set number background=dark | ||
| + | syntax on | ||
| + | highlight Comment | ||
| + | highlight Identifier ctermfg=99AA00 | ||
| + | set ts=4 sw=4 | ||
| + | undolevels=1000 | ||
| ==== RAID megoldások ==== | ==== RAID megoldások ==== | ||
| Sor 27: | Sor 102: | ||
| lvcreate -s -L 1G -n blabla / | lvcreate -s -L 1G -n blabla / | ||
| lvdisplay -C -S lv_role=snapshot | lvdisplay -C -S lv_role=snapshot | ||
| + | |||
| + | ==== sudo jog másik userhez ==== | ||
| + | |||
| + | non-root-user ALL = (appuser) NOPASSWD: ALL | ||
| + | |||
| ==== NMON adatgyűjtés ==== | ==== NMON adatgyűjtés ==== | ||
| Sor 48: | Sor 128: | ||
| nmon -f -s $INTERVAL -c $SAMPLES | nmon -f -s $INTERVAL -c $SAMPLES | ||
| </ | </ | ||
| - | |||
| - | ==== Ismétlődő sorok számolása ==== | ||
| - | |||
| - | cat file | sed ' | ||
| - | |||
| - | ==== /dev/stdin üres-e? (Van-e adat a pipe-ban?) ==== | ||
| - | |||
| - | [ ! -t 0 ] | ||
| - | |||
| - | ==== Bekezdésre greppelés Linux alatt (AIX: grep -p) ==== | ||
| - | |||
| - | awk ' | ||
| ==== Email címek extraktálása AIX alatt ==== | ==== Email címek extraktálása AIX alatt ==== | ||
| Sor 65: | Sor 133: | ||
| perl -wne' | perl -wne' | ||
| - | ==== Bash színkódok törlése szövegből ==== | ||
| - | |||
| - | sed " | ||
| ==== Hiányzik az " | ==== Hiányzik az " | ||
| Sor 104: | Sor 169: | ||
| # Get current swap usage for all running processes | # Get current swap usage for all running processes | ||
| # Erik Ljungstrom 27/05/2011 | # Erik Ljungstrom 27/05/2011 | ||
| + | echo " | ||
| SUM=0 | SUM=0 | ||
| OVERALL=0 | OVERALL=0 | ||
| Sor 120: | Sor 186: | ||
| </ | </ | ||
| - | ==== Sztringek hexa értelmezésének kiküszöbölése ==== | ||
| - | |||
| - | Pl: | ||
| - | $((10#`date +%H`)) | ||
| - | |||
| - | ==== A grep " | ||
| - | |||
| - | perl -lne '/ | ||
| ==== Törölt fájlok, amik nem szabadították még fel a helyet ==== | ==== Törölt fájlok, amik nem szabadították még fel a helyet ==== | ||
| lsof |(sed 1q; grep deleted) | lsof |(sed 1q; grep deleted) | ||
| - | ==== BASH változó manipulációk ==== | + |  | 
| - | + | ||
| - | ^Syntax^Meaning^ | + | |
| - | |${#var} | String length (number of characters in $var).| | + | |
| - | |${var%%^^%%} | Uppercase alphanumeric characters in $var.| | + | |
| - | |${parameter? | + | |
| - | |${parameter-default}, | + | |
| - | |${parameter=default}, | + | |
| - | |${parameter+alt_value}, | + | |
| - | |${var# | + | |
| - | |${var## | + | |
| - | |${var%Pattern} | Remove from $var the shortest part of $Pattern that matches the back end of $var.| | + | |
| - | |${var%%%%Pattern} | 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: | + | |
| - | |${var/ | + | |
| - | |${var%%// | + | |
| - | |${var/# | + | |
| - | |${var/ | + | |
| - | |${!varprefix*}, | + | |
| - | + | ||
| - | forrás: [[http:// | + | |
| - | + | ||
| - | ==== Gyakori BASH RC kódok ==== | + | |
| - | + | ||
| - | ^Exit Code Number ^Meaning ^Example ^Comments^ | + | |
| - | |1	|Catchall for general errors	|let "var1 = 1/ | + | |
| - | |2 |Misuse of shell builtins (according to Bash documentation) |empty_function() {} |Missing keyword or command| | + | |
| - | |126	|Command invoked cannot execute	|/ | + | |
| - | |127	|" | + | |
| - | |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 " | + | |
| - | |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 " | + | |
| - | + | ||
| - | ==== Terminál kurzor pozícionálás ==== | + | |
| - | + | ||
| - | - Position the Cursor: | + | |
| - | \033[< | + | |
| - |  | + | |
| - | \033[< | + | |
| - | puts the cursor at line L and column C. | + | |
| - | - Move the cursor up N lines: | + | |
| - | \033[< | + | |
| - | - Move the cursor down N lines: | + | |
| - | \033[< | + | |
| - | - Move the cursor forward N columns: | + | |
| - | \033[< | + | |
| - | - Move the cursor backward N columns: | + | |
| - | \033[< | + | |
| - | + | ||
| - | - 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 | + | |
| - | + | ||
| - | ==== " | + | |
| - | v1: | + | |
| - | < | + | |
| - | a=1 | + | |
| - | sp="/ | + | |
| - | echo -n ' ' | + | |
| - | while true | + | |
| - | do | + | |
| - | printf " | + | |
| - | done | + | |
| - | </ | + | |
| - | v2: | + | |
| - | < | + | |
| - | spinner() | + | |
| - | { | + | |
| - | local pid=$1 | + | |
| - | local delay=0.75 | + | |
| - | local spinstr=' | + | |
| - | while [ "$(ps a | awk ' | + | |
| - | local temp=${spinstr#? | + | |
| - | printf " [%c]  " " | + | |
| - | local spinstr=$temp${spinstr%" | + | |
| - | sleep $delay | + | |
| - | printf " | + | |
| - | done | + | |
| - | printf " | + | |
| - | } | + | |
| - | </ | + | |
| ==== Hosszú processz végeztéről értesítő email ==== | ==== Hosszú processz végeztéről értesítő email ==== | ||
| Sor 233: | Sor 199: | ||
| done | done | ||
| echo Lefutott | mail -s " | echo Lefutott | mail -s " | ||
| + | </ | ||
| + | |||
| + | ==== processz elrejtése a PS kimenetből ==== | ||
| + | |||
| + | |||
| + | < | ||
| + | /* https:// | ||
| + | * capture calls to a routine and replace with your code | ||
| + | * gcc -Wall -O2 -fpic -shared -ldl -o shim_main.so shim_main.c | ||
| + | * LD_PRELOAD=/ | ||
| + | */ | ||
| + | #define _GNU_SOURCE /* needed to get RTLD_NEXT defined in dlfcn.h */ | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | typedef int (*pfi)(int, char **, char **); | ||
| + | static pfi real_main; | ||
| + | |||
| + | /* copy argv to new location */ | ||
| + | char **copyargs(int argc, char** argv){ | ||
| + | char **newargv = malloc((argc+1)*sizeof(*argv)); | ||
| + | char *from,*to; | ||
| + | int i,len; | ||
| + | |||
| + | for(i = 0; i<argc; i++){ | ||
| + | from = argv[i]; | ||
| + | len = strlen(from)+1; | ||
| + | to = malloc(len); | ||
| + | memcpy(to, | ||
| + | memset(from,' | ||
| + | newargv[i] = to; | ||
| + | argv[i] = 0; | ||
| + | } | ||
| + | newargv[argc] = 0; | ||
| + | return newargv; | ||
| + | } | ||
| + | |||
| + | static int mymain(int argc, char** argv, char** env) { | ||
| + | fprintf(stderr, | ||
| + | return real_main(argc, | ||
| + | } | ||
| + | |||
| + | int __libc_start_main(pfi main, int argc, | ||
| + | char **ubp_av, void (*init) (void), | ||
| + | void (*fini)(void), | ||
| + | void (*rtld_fini)(void), | ||
| + | static int (*real___libc_start_main)() = NULL; | ||
| + | |||
| + | if (!real___libc_start_main) { | ||
| + | char *error; | ||
| + | real___libc_start_main = dlsym(RTLD_NEXT, | ||
| + | if ((error = dlerror()) != NULL) { | ||
| + | fprintf(stderr, | ||
| + | exit(1); | ||
| + | } | ||
| + | } | ||
| + | real_main = main; | ||
| + | return real___libc_start_main(mymain, | ||
| + | rtld_fini, stack_end); | ||
| + | } | ||
| </ | </ | ||
| Sor 247: | Sor 277: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||