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/04/16 11:28] – 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 49: | Sor 129: | ||
</ | </ | ||
- | ==== Ismétlődő sorok számolása | + | ==== Email címek extraktálása AIX alatt ==== |
- | | + | |
- | ==== /dev/stdin üres-e? (Van-e adat a pipe-ban?) ==== | ||
- | |||
- | [ ! -t 0 ] | ||
- | |||
- | ==== Bekezdésre greppelés Linux alatt (AIX: grep -p) ==== | ||
- | |||
- | awk ' | ||
- | |||
- | ==== Bash színkódok törlése szövegből ==== | ||
- | |||
- | sed " | ||
==== Hiányzik az " | ==== Hiányzik az " | ||
Sor 100: | 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 116: | 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 229: | 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 242: | Sor 276: | ||
* [[http:// | * [[http:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// |