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 [2022/10/27 11:44] 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 ==== ==== SCSI (re)scan ====
  
Sor 167: Sor 199:
 done done
 echo Lefutott | mail -s "Process $1 lefutott (${hostname})" $MAILTO echo Lefutott | mail -s "Process $1 lefutott (${hostname})" $MAILTO
 +</file>
 +
 +==== processz elrejtése a PS kimenetből ====
 +
 +
 +<file>
 +/* https://unix.stackexchange.com/a/403918/119298
 + * 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=/.../shim_main.so theprogram theargs...
 + */
 +#define _GNU_SOURCE /* needed to get RTLD_NEXT defined in dlfcn.h */
 +#include <stdlib.h>
 +#include <stdio.h>
 +#include <string.h>
 +#include <signal.h>
 +#include <unistd.h>
 +#include <dlfcn.h>
 +
 +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,from,len);
 +        memset(from,'\0',len);    /* zap old argv space */
 +        newargv[i] = to;
 +        argv[i] = 0;
 +    }
 +    newargv[argc] = 0;
 +    return newargv;
 +}
 +
 +static int mymain(int argc, char** argv, char** env) {
 +    fprintf(stderr, "main argc %d\n", argc);
 +    return real_main(argc, copyargs(argc,argv), env);
 +}
 +
 +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;
 +
 +    if (!real___libc_start_main) {
 +        char *error;
 +        real___libc_start_main = dlsym(RTLD_NEXT, "__libc_start_main");
 +        if ((error = dlerror()) != NULL) {
 +            fprintf(stderr, "%s\n", error);
 +            exit(1);
 +        }
 +    }
 +    real_main = main;
 +    return real___libc_start_main(mymain, argc, ubp_av, init, fini,
 +            rtld_fini, stack_end);
 +}
 </file> </file>