Skip to main content

Posts

[bash-script] get_info.sh print cpu allocation infomation of threads

1) way1 ps xH -o 'pid tid cmd comm pcpu psr' 2) way2 #!/bin/bash TMP_FILE=$(mktemp /tmp/abc-script.XXXXXX) echo ${TMP_FILE} ps xH -o 'pid tid cmd comm pcpu ' > ${TMP_FILE} function make_header() {   echo -n "$1"   echo " psr" } function make_values() {   echo -n "$1"   STATUS_FILE=/proc/${2}/task/${3}/status   if [ -f ${STATUS_FILE} ] ; then     CPU_SET=`cat ${STATUS_FILE}  |grep Cpus_allowed_list |awk ' { print $2 } '`   else     CPU_SET="None"   fi   echo " ${CPU_SET}" } let IDX=0 while IFS='' read -r line || [[ -n "$line" ]]; do    LINE_SEP=( $line )    MY_PID=${LINE_SEP[0]}    MY_TID=${LINE_SEP[1]}    if [ ${IDX} -eq 0 ]; then      SZ_HEADER=`make_header "$line"`      echo ${SZ_HEADER}    else      SZ_VALUES=`make_values "$line" ${MY_PID} ${MY_TID}`      echo ${SZ_VALUES}    fi #   echo ${IDX}   let IDX=${IDX}+1 done < "

[AWK] C struct to fprintf script

example code #!/bin/bash awk ' { if ($1 == "u_int" ) FORMAT="%u"; \ else if ($1 == "u_short" ) FORMAT="%u"; \ else if ($1 == "uint64_t" ) FORMAT="%lu"; \ else if ($1 == "int" ) FORMAT="%d"; \ else if ($1 == "int32_t" ) FORMAT="%d"; \ else if ($1 == "int64_t" ) FORMAT="%ld"; \ else if ($1 == "u_char" ) FORMAT="%s"; \ else if ($1 == "char" ) FORMAT="%s"; \ else FORMAT="ERROR"; \ if ( substr($2,length($2),1) == ";" ) KEY=substr($2,0, length($2)-1); else KEY=$2; \ print "fprintf(stdout, \"" KEY "= [" FORMAT "]\\n\", p_x->" KEY " );" } ' a.dat # a.dat typedef struct {       u_int    m1;       int myport;       u_short  ushort2;       u_int    int1;       u_short  data;       u_char   dummy[8];       uint64_t length;

[Linux/vi] multi search string

[1stString] : First string to find. [2ndString] : Second string to find Or Search ( Use "\|" ) /[1stString]\|[2ndString] And Search (Use ".*" ) /[1stString].*[2ndString]/ Reference: http://www.linuxquestions.org/questions/linux-software-2/searching-multiple-patterns-through-vi-editor-725155/

linux file system recovery

1. broken hdd disk backup  1) remote-server nc -v -l [port] > hdd_backup.img  2) equipment of broken hdd dd if=/dev/sda | nc -v [remote-server IP] [port]   ex)  1) remote-server nc -v -l 2222 > hdd_backup.img  2) equipment of broken hdd dd if=/dev/sda | nc -v 1.1.1.1 2222 2. use recovery tool  testdisk (http://www.cgsecurity.org/wiki/TestDisk_Download) 3. run fsck from img file  # losetup --offset 32256 /dev/loop2 harddrive.img  # fsck /dev/loop2  and again testdisk reference: https://major.io/2010/12/14/mounting-a-raw-partition-file-made-with-dd-or-dd_rescue-in-linux/ https://bbs.archlinux.org/viewtopic.php?id=136766

run dosbox on windows10 tablet

My windows tablet with dosbox had erros.  "SDL: DirectInputDevice::SetDataFormat: Invalid parameters" Solution-1 download vcredist_x86.exe file and install Solution-2 download and install Touch Enabled SDL. ==>  SDL.dll  Reference:   http://www.ppomppu.co.kr/ zboard/view.php?id=wintab&no= 11258 http://zhengxu.tistory.com/276

[bash] unix time to date format

----------------------- function print_date_by_unix_time {   LOCALE="+9hour"   date -d "1970-01-01 $1 seconds ${LOCALE}" } ----------------------- Output Example # print_date_by_unix_time `date +%s` Fri Jan 29 20:40:23 KST 2016 # print_date_by_unix_time 1354067587 Wed Nov 28 10:53:07 KST 2012

[python] get string from output of other process

1.  The Script ---------------------------------- #!/usr/bin/python import subprocess def getCallResult(cmdARGS):   fd_popen = subprocess.Popen(cmdARGS.split(), stdout=subprocess.PIPE).stdout   data = fd_popen.read().strip()   fd_popen.close()   return data data = getCallResult("ls -la") print (data) ---------------------------------- 2. Result Example ---------------------------------- # python test.py total 524 drwxrwxr-x  4 parkmo parkmo   4096  1월 27 16:30 . drwxrwxr-x 45 parkmo parkmo   4096  1월 27 11:59 .. drw-rw-r--  1 parkmo parkmo    421  1월 27 12:01 test.py .. .. 1) If you don't want use split() when call subprocess.Popen, use [ ]. subprocess.Popen(["ls", "-la"], stdout=subprocess.PIPE).stdout 2) If you can want to file descriptor.   fd_popen = subprocess.Popen(cmdARGS.split(), stdout=subprocess.PIPE).wait() You can use Blocking or Non-Blocking. Test Environment: Pytho