반응형

Linux에서 네트워크 트래픽을 확인하거나 파일 압축과 tar 묶기를 처리할 때는 명령어별 역할을 먼저 나눠야 덜 헷갈립니다.

nload와 iftop은 네트워크 사용량을 볼 때, gzip과 bzip2는 단일 파일 압축에, tar는 여러 파일을 하나로 묶거나 tar.gz 파일을 풀 때 각각 다른 역할을 합니다.

 

핵심 정리

네트워크 트래픽 확인에는 전체 흐름을 가볍게 보는 도구와 연결별 사용량을 자세히 보는 도구를 나눠 생각하면 좋습니다. 압축 명령어는 파일을 줄이는 일과 여러 파일을 하나로 묶는 일을 구분해야 덜 헷갈립니다. gzip, bzip2, compress는 주로 파일 하나를 압축하는 쪽이고, tar는 여러 파일을 하나의 archive로 묶는 쪽입니다. tar.gz는 tar로 먼저 묶고 gzip으로 압축한 형태라서, 실제 작업에서는 tar의 묶기와 gzip의 압축이 함께 쓰입니다.

  • nload는 인터페이스별 네트워크 사용량을 빠르게 확인할 때 유용합니다.
  • iftop은 어떤 연결이 트래픽을 많이 쓰는지 볼 때 적합합니다.
  • gzip과 bzip2는 단일 파일 압축에 자주 쓰입니다.
  • zip은 압축과 묶기를 함께 다루는 형식으로 볼 수 있습니다.
  • tar는 여러 파일을 하나의 archive로 묶거나 다시 풀 때 씁니다.
  • tar.gz는 tar로 묶은 결과를 gzip으로 압축한 형태라 옵션을 함께 쓰는 경우가 많습니다.

원문은 네트워크, 압축, tar, 하드웨어 메모가 이어져 있어 제목과 본문 범위가 어긋났습니다. 이번 보강은 제목을 실제 내용에 맞추고, 명령어가 담당하는 일을 먼저 나눠서 뒤쪽 메모를 찾기 쉽게 했습니다.

이어서 볼 글

 

네트웍 트래픽 관련

http://www.binarytides.com/linux-commands-monitor-network/

위 링크 좋다 ㅎㅎ

nload로 트래픽 확인하고 sudo iftop으로 자세히 보는거 일단 추천

압축/해제 관련

compress : 유닉스에서 처음에 유래된건가봐

압축 : compress 1.txt
그럼 1.txt.Z 생김

해제 : uncompress 1.txt
그럼 다시 1.txt 가 됨.

bzip2 : 파일하나 압축할때 쓰임.

압축 : bzip2 1.txt
그럼 1.txt.bz2 생김

해제 : bunzip2 1.txt
그럼 다시 1.txt가 됨.

gzip : 마찬가지로 파일 하나 압출할때 쓰이는 듯?

압축 : gzip 1.txt
그럼 1.txt.gz 생김

해제 : gunzip 1.txt
그럼 다시 1.txt가 됨.

위의 3개는 파일 하나씩 압축하는 개념이고, 파일하나로 묶어주는 archiving 또는 packing의 개념은 tar에서 담당하는거 같애.

근데 위의 3개랑 다르게

zip, unzip 이 있는데 이거는 윈도 PKZIP와 비교되는 건데.. 이거는 파일하나씩 압축이 아니라 packing까지 지원되는거래(원래 윈도우에서의 상식대로..)
이거 쓰고싶으면 그냥
$ zip a.zip *
이런식으로 하면 현재폴더에 있는거 a.zip 으로 압축하는거..

tar는 위의 내 말대로 pack과 unpack만을 전문적으로 담당하는데.. 보통 패킹할때

tar -cvf a.tar 1.txt 2.txt 3.txt ...

위와 같이 하게 되잖아.. 그런데 각 플래그 뜻은.. c는 crete, v는 verbose, f는 output이 파일이다.. 이런거고 -f 다음에 파일명이 와야 하나봐 그래서 tar -cvf대신에 tar -cfv로 하면 v라는 이름의 파일이 만들어져 버려.. 그리고 -v옵션은 verbose니까 빼도 되지..즉 tar -cf ... 이렇게 해도 된다는 것..

tar -tvf a.tar 
위처럼 하면 내부 파일 열람.

tar -xvf a.tar 
위처럼 하면 알듯이 언패킹

아항.. 그래서 a.tar.gz 이런 파일이 생기는 거구나..

그리고 위의 파일을 압축해제하고 언패킹하려면 원래는 다음과 같이 해야 하는데..(-c 옵션은 파이프로 보내기 위한것 마지막 하이픈은 파일이름 대신에 파이프로 받겠다는거 같은데 정확히는 모르겠음. 실행 되는건 확인했음)

$ gunzip -c a.tar.gz | tar -xvf -

위의 2과정을 하나로 줄여서 z 자를 붙여주면 되는거지구나! 올타쿠나~

tar -xvzf a.tar.gz

압축할때는 당연히

tar -cvzf a.tar.gz 1.txt 2.txt 3.txt ...

위와 같이 하면 tar볼로 묶고 gzip으로 압축하는 과정이 자동으로 이루어진다!

HW관련

노트북 뚜껑 닫을때 suspend 안되게

http://unix.stackexchange.com/questions/52643/how-to-disable-auto-suspend-when-i-close-laptop-lid

kworker high cpu usage

이상하게 kworker라는게 항상 CPU하나의 75%쯤 잡아먹고 있어서 

다음링크보고 perf로 조사해봤더니 acpi쪽이 문젠거 같았다.

http://askubuntu.com/questions/33640/kworker-what-is-it-and-why-is-it-hogging-so-much-cpu#421916

Install perf:

sudo apt-get install linux-tools-common linux-tools-3.11.0-15-generic
(The second package must match your kernel version. You can first install just linux-tools-common and call perf to let it tell you which package it needs.)

Record some 10 seconds of backtraces on all your CPUs:

sudo perf record -g -a sleep 10
Analyse your recording:

sudo perf report
(Navigate the call graph with ←, →, ↑, ↓ and Enter.)

결국 다음 링크 보고 crontab으로 gpr13을 disable해줬더니 문제가 해결된듯하다!

https://bbs.archlinux.org/viewtopic.php?id=184913

vim 관련

최초설치

Vuldle 설치

https://github.com/VundleVim/Vundle.vim

  $ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

  

위에 걸로 Vundle 설치

.vimrc

그담에 아래 부분 복사

set nocompatible " be iMproved, required
filetype off " required

" Vundle                                                                       
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
Plugin 'flazz/vim-colorschemes'
Plugin 'altercation/vim-colors-solarized'
Plugin 'scrooloose/nerdtree'
Plugin 'scrooloose/nerdcommenter'
Plugin 'tpope/vim-fugitive'
Plugin 'airblade/vim-gitgutter'
Plugin 'kien/ctrlp.vim'
Plugin 'tpope/vim-unimpaired'
Plugin 'Lokaltog/vim-easymotion'
Plugin 'justinmk/vim-sneak'
Plugin 'majutsushi/tagbar'
Plugin 'nathanaelkane/vim-indent-guides'
Plugin 'jmcantrell/vim-virtualenv'
Plugin 'klen/python-mode'
Plugin 'bling/vim-airline'
Plugin 'Conque-Shell'

" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" Put your non-Plugin stuff after this line
"                                                                              

" Colorscheme
set t_Co=256
set background=dark
colorscheme solarized
let g:solarized_termcolors=256

syntax enable
set modifiable
set ruler
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set backspace=indent,eol,start
set autoindent
set cindent
set smartindent
set showmatch
set smarttab
set incsearch
set title
set hlsearch
set history=1000
set undolevels=1000
set list
set listchars=tab:>-,trail:.,extends:#
set wrap
set clipboard+=unnamed
set go+=a
set pastetoggle=<leader>p
set encoding=utf-8
set showcmd
set hidden " Controversial
set wildmenu
set wildmode=list:longest
set visualbell
set number
set relativenumber
set undofile
set ignorecase
set smartcase
set gdefault
set colorcolumn=80
set textwidth=79
set formatoptions=cqnr1
set cursorline
set nojoinspaces
set splitright
set splitbelow
set scrolloff=5

" Status
set laststatus=2
set statusline=%<%f\ " Filename
set statusline+=%w%h%m%r " Options
set statusline+=%{fugitive#statusline()} " Git Hotness
set statusline+=\ [%{&ff}/%Y] " Filetype
set statusline+=\ [%{getcwd()}] " Current dir
set statusline+=%=%-14.(%l,%c%V%)\ %p%% " Right aligned file nav info

set wildignore+=*.so,*.swp,*.zip,*.pyc
set wildignore+=*.o,*.out,*.obj,*.so,*.pyc
set wildignore+=*.zip,*.tar.gz,*.tar.bz2,*.rar,*.tar.xz
set wildignore+=*/.sass-cache/*
set wildignore+=*.swp,*~,._*

map <C-J> <C-W>j
map <C-K> <C-W>k
map <C-H> <C-W>h
map <C-L> <C-W>l

let g:EasyMotion_do_mapping = 0
let g:EasyMotion_smartcase = 1
map <SPACE> <Plug>(easymotion-s2)

" Fugitive
nnoremap <silent> <leader>gs :Gstatus<CR>
nnoremap <silent> <leader>gd :Gdiff<CR>
nnoremap <silent> <leader>gc :Gcommit<CR>
nnoremap <silent> <leader>gb :Gblame<CR>
nnoremap <silent> <leader>gl :Glog<CR>
nnoremap <silent> <leader>gp :Git push<CR>
nnoremap <silent> <leader>gr :Gread<CR>
nnoremap <silent> <leader>gw :Gwrite<CR>
nnoremap <silent> <leader>ge :Gedit<CR>

" Tagbar
nnoremap <silent> <leader>l :TagbarToggle<CR>

" Nerdtree
"map <C-e> <plug>NERDTreeTabsToggle<CR>
"map <leader>e :NERDTreeFind<CR>
nmap <leader>nt :NERDTreeFind<CR>
nmap <leader>nn :NERDTreeToggle<CR>
let NERDTreeShowBookmarks=1
let NERDTreeIgnore=['\.pyc', '\~$', '\.swo$', '\.swp$', '\.git', '\.hg', '\.svn', '\.bzr']
let NERDTreeChDirMode=0
let NERDTreeQuitOnOpen=1
let NERDTreeMouseMode=2
let NERDTreeShowHidden=1
let NERDTreeKeepTreeInNewTab=1
let g:nerdtree_tabs_open_on_gui_startup=0

"Indent-guides
" let g:indent_guides_auto_colors = 0
autocmd filetype c,cpp,h,hpp,python,html,htmldjango,htmljinja :IndentGuidesEnable
let g:indent_guides_auto_colors = 0
"autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd ctermfg=none ctermbg=234
autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd ctermfg=none ctermbg=235
autocmd VimEnter,Colorscheme * :hi IndentGuidesEven ctermfg=none ctermbg=235
"autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd ctermbg=black
"autocmd VimEnter,Colorscheme * :hi IndentGuidesEven ctermbg=darkgrey
let g:indent_guides_start_level = 2
let g:indent_guides_guide_size = 1

" Python mode
let g:pymode_lint_checkers = ['pyflakes', 'pep8']
let g:pymode_folding = 0
let g:pymode_options = 0
let g:pymode_rope = 0
let g:pymode_run_bind = '<leader>pr'
let g:pymode_breakpoint_bind = '<leader>pb'

" Airline
let g:airline#extensions#tabline#enabled=1
"let g:airline_theme='bubblegum'
"let g:airline_left_sep=''
"let g:airline_right_sep=''
"if !exists('g:airline_symbols')
    "let g:airline_symbols = {}
"endif
"let g:airline_left_sep = '»'
"let g:airline_left_sep = '▶'
"let g:airline_right_sep = '«'
"let g:airline_right_sep = '◀'
"let g:airline_symbols.linenr = '␊'
"let g:airline_symbols.linenr = '␤'
"let g:airline_symbols.linenr = '¶'
"let g:airline_symbols.branch = '⎇'
"let g:airline_symbols.paste = 'ρ'
"let g:airline_symbols.paste = 'Þ'
"let g:airline_symbols.paste = '∥'
"let g:airline_symbols.whitespace = 'Ξ'
let g:airline_powerline_fonts=1

" Ctrlp
"let g:ctrlp_custom_ignore = {
"\ 'dir': '\v[\/]\.(git|hg|svn)$',
"\ 'file': '\v\.(exe|so|dll)$',
"\ 'link': 'some_bad_symbolic_links',
"\ }
let g:ctrlp_working_path_mode = 'rwa'
let g:ctrlp_follow_symlinks = 1
let g:ctrlp_custom_ignore = {
            \ 'dir': '\.git$\|\.hg$\|\.svn$',
            \ 'file': '\.so$\|\.pyc$' }
"let g:ctrlp_map = '<leader>t'
nnoremap <leader>b :CtrlPBuffer<CR>

" Sneak
let g:sneak#use_ic_scs = 1

let g:ConqueTerm_StartMessages = 0

sshd 관련

현황보기

# service sshd status
Redirecting to /bin/systemctl status sshd.service
sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: active (running) since 일 2015-11-08 01:14:02 KST; 41s ago
 Main PID: 2054 (sshd)
   CGroup: /system.slice/sshd.service
           └─2054 /usr/sbin/sshd -D

11월 08 01:14:02 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
11월 08 01:14:02 localhost.localdomain sshd[2054]: Server listening on 0.0.0.0 port 22.
11월 08 01:14:02 localhost.localdomain sshd[2054]: Server listening on :: port 22.
[root@localhost test]#

또는

$ systemctl status sshd
sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
   Active: active (running) since 토 2015-11-07 23:31:55 KST; 1h 39min ago
 Main PID: 1822 (sshd)
   CGroup: /system.slice/sshd.service
           └─1822 /usr/sbin/sshd -D

서비스 재시작

  $ service sshd restart

  

위에는 옛날 방식인듯.. 아래처럼 해도 된다.   

  $ systemctl restart sshd

서버에서 현재 listen하고 있는 포트보기

  # netstat -anp | grep LISTEN | grep sshd

반응형

+ Recent posts