본문 바로가기
728x90

프로그래밍/리눅스 쉘 & utils6

GIT branch 생성 및 사용법, merge GIT 사용 시, 종종 소스 수정이 있을 때마다, branch를 생성해서 사용하게 되는데, 자주 사용하지는 않다보니 명령어가 잘 기억나지 않는 경우가 있다. 그래서 간단하게 GIT branch 사용법을 정리해본다. GIT repository 위치 확인 우선, local에 trunk 소스를 받아놓은 위치에 가서 다음의 명령어를 실행하여, GIT repository 위치를 확인한다. $ git remote -v origin http://10.10.10.1:7443/test/test.git (fetch) origin http://10.10.10.1:7443/test/test.git (push) GIT 복제본 생성 branch를 생성하고자하는 최상위 디렉토리로 이동하여, trunk의 복제본을 local로 가져온.. 2023. 11. 14.
[gdb]coredumpctl 사용법 기존에는 linux core 파일 확인 방법으로 $ gdb binary명 dumpfile 과 같은 형태로 사용하였다. 하지만 최근에는 coredumpctl 데몬을 이용한 debugging이 보편화되어 가는 느낌이다. 통상적으로 개별적으로 dump file 관리하는 방법 대비 장점은 1. 실행의 편의성(바이너리 파일의 위치를 찾을 필요가 없음) 2. dump file 관리의 용이성(오래된 파일 자동 삭제 등) 등이 있다. 간단한 사용법은 다음과 같다. 1. core파일 리스트 정보확인 $ coredumpctl list 2. core 파일 세부 정보확인 $ coredumpctl info "pid" 3. core file을 별도 경로에 저장 $ coredumpctl dump "pid" -o "$PATH/fil.. 2022. 12. 15.
bash에서 파일 include 시키기 (source 명령어) 쉘 스크립트를 짜다보면, 스크립트 양이 많아져서, 코드의 가독성이 떨어지는 경우가 꽤 생긴다. 여러 개의 쉘로 나누어서, 상위 쉘에서 하위 쉘 여러 개를 실행하는 식으로 작성하는 방법도 있지만, 일반 프로그래밍 언어와 마찬가지로 쉘에서도 include 할 수 있는 방법이 있다. 쉘에서는 source 명령어를 이용하면, 특정 파일의 변수 및 함수를 include 시킬 수 있다. main.sh에서 test_defs에 있는 fn_usage와 fn_echo를 호출해 보겠다. 코드 자체에 특이 사항은 없고, 일반 프로그래밍언어의 include와 다른 점은 test_defs에서 MAIN_VAR을 사용 가능하다는 것이다. 소스 코드 main.sh #!/bin/bash source test_defs # test_def.. 2013. 9. 11.
expect를 이용한 자동화(3) - 원격 장비 passwd 변경 expect에 대한 설명은 expect를 이용한 자동화(1) - ssh 를 참조하기 바란다. 여기서는 expect를 이용해서 원격 장비의 passwd를 자동으로 변경하는 쉘을 만들어 보겠다. 서버가 여러 대일 경우, 동시에 passwd변경 시 유용하게 사용할 수 있다. 파일명 passwd.exp 파일 내용 #!/usr/bin/expect proc usage {} { puts "usage: ip_address old_password new_passwd" exit 1 } set argc [llength $argv] if { $argc != 4 } { usage } set timeout -1 set HOST [lindex $argv 0] set USERID [lindex $argv 1] set PASSWD [.. 2013. 9. 3.
expect를 이용한 자동화(2) - scp expect에 대한 설명은 expect를 이용한 자동화(1) - ssh 를 참조하기 바란다. 여기서는 expect를 이용해서 scp의 자동으로 passwd를 입력하고, 원격복사하는 쉘을 만들어 보겠다. 파일명 scp.exp 파일 내용 #!/usr/bin/expect proc usage {} { puts "usage: src target id password" exit 1 } set argc [llength $argv] if { $argc != 4 } { usage } set timeout -1 set SRC_PATH [lindex $argv 0] set TARGET_PATH [lindex $argv 1] set TARGET_ID [lindex $argv 2] set PASSWD [lindex $argv .. 2013. 9. 3.
728x90