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.

Összehasonlító nézet linkje

Előző változat mindkét oldalonElőző változat
Következő változat
Előző változat
linux [2020/06/25 12:00] – [Terminál doboz rajzolás] adminlinux [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='2020-08-12T16:00:10'
 +    epoch=$(date -d "$date" +%s)
 +    if [ "$epoch" -lt "$(date -d '1 minute ago' +%s)" ] ; then
 +  #[[ "$(date -d '2024-02-01 17:26:00' +%s)" -lt "$(date +%s)" ]] && echo elmult || echo nem
 +        echo At least 3 days ago
 +    else
 +        echo Too recent
 +    fi
 +  }
 +
 +
 +==== Reboot, ha nem megy a szabályos reboot ====
 +
 +  # echo s > /proc/sysrq-trigger
 +  # echo u > /proc/sysrq-trigger
 +  # echo s > /proc/sysrq-trigger
 +  # echo b > /proc/sysrq-trigger
 +
 +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 "dm-*" -exec readlink -n {} \; -exec echo " -->" {} \;
 +==== SCSI (re)scan ====
 +
 +  #!/bin/sh
 +  for I in `ls -d /sys/class/scsi_device/*`; do
 +        echo ${I}
 +        echo "1" > ${I}/device/rescan
 +  done
 +
 +  #!/bin/sh
 +  for I in `ls -d /sys/class/scsi_host/host*`; do
 +        echo ${I}
 +        echo "- - -" > ${I}/scan
 +  done
 +
 +
 +==== Yum-mal telepített csomagok listázása log fájlból ====
 +
 +  cat /var/log/yum.log | sed "s#.\+: \?\(.\+\)#\1#" | sort
 +==== Disk perf. teszt DD-vel ====
 +
 +<file>
 +#!/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 's/\..*$/g/')
 +echo -n "Diszk irasa (dd if=/dev/zero of=$FNEV bs=$BS count=$COUNT)… "
 +SEC=$(timex dd if=/dev/zero of=$FNEV bs=$BS count=$COUNT 2>&1 | awk '/real/{print $2}' | awk -F'.' '{print $1}')
 +echo "$(($FS / $SEC)) MB/s"
 +</file>
  
 ==== BOOT probléma ==== ==== BOOT probléma ====
Sor 5: Sor 72:
 GRUB menüben a "quiet" paraméter helyére "dracut rdshell"-t betenni GRUB menüben a "quiet" paraméter helyére "dracut rdshell"-t betenni
  
 +==== ~/.vimrc ====
 +
 +  set number background=dark
 +  syntax on
 +  highlight Comment    ctermfg=119
 +  highlight Identifier ctermfg=99AA00
 +  set ts=4 sw=4
 +  undolevels=1000
 ==== RAID megoldások ==== ==== RAID megoldások ====
  
Sor 28: Sor 103:
   lvdisplay -C -S lv_role=snapshot   lvdisplay -C -S lv_role=snapshot
  
-==== SSH kilép aciklusból az első futás után ====+==== sudo jog másik userhez ==== 
 + 
 +  non-root-user ALL = (appuser) NOPASSWD: ALL
  
-  ssh -n ... 
  
 ==== NMON adatgyűjtés ==== ==== NMON adatgyűjtés ====
Sor 52: Sor 128:
 nmon -f -s $INTERVAL -c $SAMPLES nmon -f -s $INTERVAL -c $SAMPLES
 </file> </file>
- 
-==== 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 ==== ==== Email címek extraktálása AIX alatt ====
Sor 110: 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 "Swappiness: $(cat /proc/sys/vm/swappiness)"
 SUM=0 SUM=0
 OVERALL=0 OVERALL=0
Sor 126: Sor 186:
 </file> </file>
  
-==== 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 ==== ==== 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 ====+     
 +==== Hosszú processz végeztéről értesítő email ====
  
-^Syntax^Meaning^ +<file> 
-|${#var} | String length (number of characters in $var).| +#!/bin/bash 
-|${var%%^%%} | Uppercase first alphanumeric character in $var.| +MAILTO="rvenyige@pcs.hu,pagoston@pcs.hu" 
-|${var%%^^%%} | Uppercase alphanumeric characters in $var.| +SSH="ssh -i /home/pagoston/.ssh/id_rsa pagoston@sapeltora " 
-|${var%%^^%%[p,g]} | Uppercase alphanumeric characters in $var matching p or g.| +while [ $($SSH "ps -ef awk '{print $2}'" grep -c "$1"-gt 0 ]; do 
-|${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.| +        sleep 60 
-|${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.| +done 
-|${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.| +echo Lefutott mail -s "Process $1 lefutott (${hostname})" $MAILTO 
-|${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.| +</file>
-|${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.| +
-|${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: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]]+==== processz elrejtése a PS kimenetből ====
  
-==== Gyakori BASH RC kódok ==== 
  
-^Exit Code Number ^Meaning ^Example ^Comments^ +<file> 
-|1 |Catchall for general errors |let "var1 = 1/0" |Miscellaneous errors, such as "divide by zero" and other impermissible operations| +/* https://unix.stackexchange.com/a/403918/119298 
-|2 |Misuse of shell builtins (according to Bash documentation) |empty_function() {} |Missing keyword or command| + * capture calls to a routine and replace with your code 
-|126 |Command invoked cannot execute |/dev/null |Permission problem or command is not an executable| + * gcc -Wall -O2 -fpic -shared -ldl -o shim_main.so shim_main.c 
-|127 |"command not found" |illegal_command |Possible problem with $PATH or typo| + * LD_PRELOAD=/.../shim_main.so theprogram theargs... 
-|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)| +#define _GNU_SOURCE /* needed to get RTLD_NEXT defined in dlfcn.h */ 
-|130 |Script terminated by Control-C |Ctl-C |Control-C is fatal error signal 2, (130 128 + 2, see above)| +#include <stdlib.h> 
-|255* |Exit status out of range |exit -1 |exit takes only integer args in the range 0 - 255|+#include <stdio.h> 
 +#include <string.h> 
 +#include <signal.h> 
 +#include <unistd.h> 
 +#include <dlfcn.h>
  
-==== Hiba csatorna színezése ====+typedef int (*pfi)(int, char **, char **); 
 +static pfi real_main;
  
-   $ parancs 2> >(while read linedo echo -e "\e[01;31m$line\e[0m"; done) +/* copy argv to new location */ 
-    +char **copyargs(int argc, char** argv){ 
-==== Bash színkódok törlése szövegből ====+    char **newargv = malloc((argc+1)*sizeof(*argv)); 
 +    char *from,*to
 +    int i,len;
  
-  sed "s,\x1B\[[0-9;]*[a-zA-Z],,g"+    for(i = 0; i<argc; i++){ 
 +        from = argv[i]; 
 +        len = strlen(from)+1; 
 +        to = malloc(len); 
 +        memcpy(to,from,len); 
 +        memset(from,'\0',len);    /* zap old argv space */ 
 +        newargv[i] = to; 
 +        argv[i] = 0; 
 +    } 
 +    newargv[argc= 0; 
 +    return newargv; 
 +}
  
-==== Dátumos prompt képernyőmentéses dokumentáláshoz ====+static int mymain(int argc, char** argv, char** env) { 
 +    fprintf(stderr, "main argc %d\n", argc); 
 +    return real_main(argc, copyargs(argc,argv), env); 
 +}
  
-  export PS1='[\u@\h \W] \D{%F %T}\n\$ '+int __libc_start_main(pfi main, int argc, 
 +                      char **ubp_av, void (*init) (void), 
 +                      void (*fini)(void), 
 +                      void (*rtld_fini)(void), void (*stack_end)){ 
 +    static int (*real___libc_start_main)() = NULL;
  
-==== Terminál doboz rajzolás ==== +    if (!real___libc_start_main) { 
-   +        char *error
-  env printf '\u2502' +        real___libc_start_main = dlsym(RTLD_NEXT"__libc_start_main"); 
-   +        if ((error dlerror()) !NULL) { 
-Karakterek: https://en.wikipedia.org/wiki/Box-drawing_character +            fprintf(stderr, "%s\n", error); 
-   +            exit(1); 
-==== Terminál kurzor pozícionálás ==== +        } 
-   +    } 
-- Position the Cursor: +    real_main main; 
-  \033[<L>;<C>+    return real___libc_start_main(mymain, argc, ubp_av, init, fini, 
-     Or +            rtld_fini, stack_end);
-  \033[<L>;<C>f +
-  puts the cursor at line L and column C. +
-- Move the cursor up N lines: +
-  \033[<N>+
-- Move the cursor down N lines: +
-  \033[<N>+
-- Move the cursor forward N columns: +
-  \033[<N>+
-- Move the cursor backward N columns: +
-  \033[<N>+
- +
-- 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: +
-<file> +
-a=1 +
-sp="/-\|" +
-echo -' ' +
-while true +
-do +
-    printf "\b${sp:a++%${#sp}:1}" +
-done +
-</file> +
-v2: +
-<file> +
-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"+
 } }
-</file> 
- 
-==== 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 ==== 
- 
-<file> 
-#!/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 
 </file> </file>
  
Sor 284: Sor 278:
   * [[https://ef.gy/forwarding-ipv4-to-ipv6|Forwarding IPv4 Ports to IPv6-only Hosts]]   * [[https://ef.gy/forwarding-ipv4-to-ipv6|Forwarding IPv4 Ports to IPv6-only Hosts]]
   * [[https://www.techrepublic.com/article/how-to-setup-two-factor-authentication-in-linux|Két faktoros authentikáció linuxon]]   * [[https://www.techrepublic.com/article/how-to-setup-two-factor-authentication-in-linux|Két faktoros authentikáció linuxon]]
 +  * [[https://access.redhat.com/articles/17054|How do I find the FC ID (WWN) of a scsi device/LUN on Red Hat Enterprise Linux?]]