#SETP_01. crontab에서 실행할 script파일 생성
#data_backup.sh ===========================================
#!/bin/sh

CURRENT_DATE=`date +%Y_%m%d`
tar zcf /home/afewgood/backup_${CURRENT_DATE}.tar.gz /home/afewgood/data

#find /home/afewgood/ -name "backup_*.tar.gz" -mtime +180    #생성된지 180일(6개월)이 지난 파일 찾기
find /home/afewgood/ -name "backup_*.tar.gz" -mtime +180 -exec rm -rf {} \;    #rm명령으로 파일 삭제
#end of file ==============================================

SETP_02 crontab 적용
#매달 말일 23:59에 스크립트 실행

#방법_01 /etc/crontab 파일을 직접 수정 (su권한)
[root@afewgood ~]$ vi /ect/crontab
59 23 * * * [ $(date +\%d -d tomorrow) = 01 ] && root /home/data_backup.sh

#방법_02 crontab -e 를 이용해서 crontab에 추가 (su권한 / 사용자 지정 없음)
[root@afewgood ~]$ crontab -e
59 23 * * * [ $(date +\%d -d tomorrow) = 01 ] && /home/data_backup.sh

※ crontab 작업목록확인
[root@afewgood~]$ crontab -l

※ arch linux crontab 설치 및 설정 순서
1. crontab 설치
[root@afewgood ~]$ sudo pacman -S cronie
2. 실행
[root@afewgood ~]$ sudo systemctl enable --now cronie.service
3. shell script 작성
4. crontab -e를 이용하여 crontab 명령 추가

√ 참고사이트 목록
https://velog.io/@khyup0629/shell-script-crontab-%EB%A7%A4%EB%8B%AC-%EB%A7%88%EC%A7%80%EB%A7%89-%EB%82%A0%EC%97%90-%EC%8B%A4%ED%96%89%EB%90%98%EB%8F%84%EB%A1%9D-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
https://blog.desdelinux.net/ko/usar-crontab-en-archlinux-con-cronie/
https://www.nemonein.xyz/2022/02/6424/
https://jdm.kr/blog/2

Posted by afewgood
,

//ip_conflict_check.sh
Start ========================================
#!/bin/sh
#arping -q -D -I DEVICE -c COUNT IP_ADDRESS; echo $?
#ex) arping -q -D -I eth0 -c 1 192.168.0.181; echo $?
#리턴값이 1 이면 이미 네트워크상에 IP가 존재 / 0 이면 중복 IP 없음

out="ip_check_ret.txt"
touch "$out"

arping -q -D -I eth0 -c 1 "$1"

ret=$?
echo "$ret" > "$out"
End ==========================================

실행방법
[root@afewgood /home ~]$ ./ip_conflict_check.sh 192.168.0.254
[root@afewgood /home ~]$  cat ip_check_ret.txt
1    //IP 존재함
[root@afewgood /home ~]$ 

Posted by afewgood
,

1. 정적라이브러리 압축해제 
ex) abc.a 파일과 xyz.a 파일 두개가 있다.
①mkdir -p abc  ②mkdir -p xyz  ③cd abc  ④ar -x ../abc.a  ⑤cd ../xyz  ⑥ar -x ../xyz.a
생성된 폴더에 .o 파일이 생긴다.

2. 정적라이브러리 합치기
①cd ..  ②ar -qc libaxbycz.a abc/*.o xyz/*.o
libaxbycz.a파일이 생성된다

출처: [linux] 두 개의 "ar"정적 라이브러리를 하나로 병합하는 방법은 무엇입니까? - 리뷰나라 (daplus.net)

'linux' 카테고리의 다른 글

crontab를 이용한 특정시간에 shellscript 실행  (0) 2022.11.21
script를 이용한 IP충돌 체크  (0) 2022.09.08
특정 이름을 가진 프로세스 죽이기  (0) 2022.04.14
ssh dns disable  (0) 2022.01.12
EmbeddedLinux 무선랜 사용  (0) 2021.07.20
Posted by afewgood
,

ps -ef | grep start | awk '{print $1}' | xargs kill -9
"start" 라는 이름을 가진 프로세스를 모두 찾아서 죽이는 명령이다.

ps -ef | grep start 까지만 입력하면, 『start』 라는 이름을 가진 프로세스가 전부 출력된다.

awk '{print $1}' 는 앞 명령어의 결과 컬럼에서 첫번째 필드만 출력하는 명령이다.
 - 참고로 일반적인 리눅스에서 ps -ef 명령의 첫번째 필드는 UID이고 두번째 필드가 PID인데
   임베디드리눅스(busybox)에서 ps -ef 명령의 첫번째 필드는 PID 이다.
    즉 『start』 라는 이름을 가진 프로세스의 PID가 출력된다.

xargs kill -9 는 앞에서 출력된 값을 인자로 kill -9 명령을 실행하라는 의미이다.
이 때 앞에서 전달받은 인자가 pid인데 kill명령으로 이를 모두 죽이는 것이다.

따라서 위 명령을 수행하면 최종적으로 『start』 라는 이름을 가진 프로세스가 전부 죽는 것이다.

 

출처: https://itholic.github.io/linux-kill-specific-process/

 

Posted by afewgood
,

ssh dns disable

linux 2022. 1. 12. 08:20

인터넷이 안되는(내부 네트워크만 구성된) 환경에서 ssh 접속시 속도가 느려지는 현상을
개선한다.

1. 설정파일 열기
  [afewgood@ubuntu ~]# vi /etc/ssh/sshd_config (su권한)

2. UseDNS 항목을 찾아서 yes를 no 로 변경
   (없으면 제일 마지막줄에 추가 UseDNS no)

3. ssh 서비스 재시작
  [afewgood@ubuntu ~]# service ssh restart (su권한)

Posted by afewgood
,

01_ifconfig 명령으로 사용가능한 네트워크 장치 확인
[afewgood@ubuntu]# ifconfig

02_유선 랜 장치를 비활성화하고 무선 랜 장치를 활성화 한다. 
[afewgood@ubuntu]# ifconfig eth0 down
[afewgood@ubuntu]# ifconfig wlan0 up

03_wpa_supplicant 명령을 사용하려면 wpa_supplicant.conf가 필요하다. 
이를 위해 우선 psk키를 생성한다.(최초 1회)
- wpa_passphrase ssid_name ssid_password > wpa_supplicant.conf
[afewgood@ubuntu]# wpa_passphrase AFewGood 12345 > /etc/wpa_supplicant.conf

04_SSID 접속
[afewgood@ubuntu]# iwconfig wlan0 essid "AFewGood"

05_wpa_supplicant 실행
[afewgood@ubuntu]# wpa_supplicant -D wext -B -i wlan0 -c /etc/wpa_supplicant.conf
 -D wext = Linux wireless extensions (generic)
 -B = run daemon in the background
 -i = interface name
 -c = Configuration file

06_ifconfig 명령으로 사용가능한 네트워크 장치 확인
[afewgood@ubuntu]# ifconfig

07_dhcp실행
[afewgood@ubuntu]# udhcpc -i wlan0

'linux' 카테고리의 다른 글

특정 이름을 가진 프로세스 죽이기  (0) 2022.04.14
ssh dns disable  (0) 2022.01.12
VirtualBox Ubuntu14.04 설치 시 참고사항  (0) 2021.07.08
cross compiler 설치 후  (0) 2020.08.27
sudo 명령어 패스워드 없이 사용하기  (0) 2019.12.30
Posted by afewgood
,

01. virtualbox 가상이미지생성
02. virtualbox 네트워크 --> 어댑터에 브릿지 --> 랜카드 선택

03. ubuntu14.04 server설치 (설치시 모두 default값 선택)
    - Full name for the new user: 입력하지 않아도 됨 (사용자의 이름)
    - host name: ubuntu / account: afewgood / password: ubuntu
    - Encrypt your home directory? --> No 선택
    - Partition disks
      --> Guided - use entire disk 선택
      --> Write the changes to disk? --> Yes선택
    - HTTP proxy --> continue선택
    - Software selection --> OpenSSH server / Samba file server 선택

04. 설치 완료 후 업데이트진행
ubuntu 버전정보 확인:
  [root@ubuntu]# lsb_release -a¶
  [root@ubuntu]# grep . /etc/*-release¶
  [root@ubuntu]# cat /etc/*-release | uniq¶
[root@ubuntu]# apt-get upgrade¶

05. ~/.bashrc 편집
[root@ubuntu]# vi ~/.bashrc¶
약 62번째 라인
#Modify by afewgood     PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' 를
PS1='${debian_chroot:+($debian_chroot)}[\u@\h \W]# ' 으로 변경

06. vi편집기 줄번호 및 한글 표시
[root@ubuntu]# vi ~/.vimrc¶
set fenc=euc-kr
set fencs=euc-kr,utf-8
set nu

07. 서버 고정IP 설정
[root@ubuntu]# vi /etc/network/interfaces
iface eth0 inet dhcp 를
iface eth0 inet static
address 192.168.0.253
subnetmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 168.126.63.1 168.126.63.2
로 변경

08. 사용자 ID추가
[root@ubuntu]# useradd -m tuesday //-m 사용자 디렉토리도 같이 만든다
[root@ubuntu]# passwd tuesday

[root@ubuntu]# userdel -rf tuesday  //-r: 계정 삭제시 홈디렉토리 포함 모든정보 삭제  -f: 강제삭제

09. shell 변경
# shell의 링크 상태 확인
[root@ubuntu]# ls -ahl /bin/sh
[root@ubuntu]# /bin/sh -> dash
#shell을 bash로 링크
[root@ubuntu]# unlink /bin/sh
[root@ubuntu]# ln -s /bin/bash /bin/sh
#shell 원상복구
[root@ubuntu]# unlink /bin/sh
[root@ubuntu]# ln -s dash /bin/sh

※(추천) 또는 /etc/passwd 파일의 계정에 /bin/bash 추가
ex) tuesday:x:1001:1001::/home/tuesday:/bin/bash

10. 사용자 root권한 추가
 - sudoers 파일 수정
[root@ubuntu]# visudo -f /etc/sudoers
root ALL=(ALL:ALL) ALL 밑에 줄에
tuesday ALL=(ALL:ALL) ALL 추가
하거나 /etc/group파일에서 sudo 항목에 tuesday추가

11. samba 설정
- 사용자 추가: 시스템 계정(/etc/passwd)에 등록된 사용자만 등록 가능함.
 $ sudo smbpasswd -a [계정명]
 [root@ubuntu]# smbpasswd -a tuesday
- 사용자 삭제
$ sudo smbpasswd -x [계정명]
[root@ubuntu]# smbpasswd -x tuesday

- samba 설정(변경) / 다른사람 계정 폴더 감추기
[root@ubuntu]# vi /etc/samba/smb.conf
[homes]
    comment = Home Directories
    read only = No
    browseable = No

browseable=no
추가

- samba서버 재시작
$ sudo /etc/init.d/smbd restart
 [root@ubuntu]# /etc/init.d/smbd restart

√ 윈도우에서 리눅스장치 접근
윈도우 버튼+R ==> \\192.168.0.XXX
조직의 보안 정책에서 인증되지 않은 게스트 액세스를 차단하므로 이 공유 폴더에 액세스 할 수 없습니다.
해결 방법
Window+R gpedit.msc <확인>
그룹정책 편집기 - 컴퓨터 구성 - 관리 템플릿 - 네트워크 - Lanman 워크스테이션 을 선택
보안되지 않은 게스트 로그온 사용에서 더블클릭 - 설정 창이 나오면 좌측 상단의 사용을 선택 후 - 확인

12. Cross Compiler 설치
gcc 설치:
  [root@ubuntu]# apt-get install gcc
make 설치: [root@ubuntu]# apt-get install make
64bit환경에서 32bit컴파일러를 사용하기 위해서...
[root@ubuntu]# apt-get install lib32ncurses5 lib32z1
[root@ubuntu]# apt-get install libmpc-dev:i386

13. nfs서버 설치
mkdir /계정명/nfs
chmod 755 /계정명/nfs
[root@ubuntu]# sudo apt-get install nfs-common nfs-kernel-server
- nfs서버 설정
[root@ubuntu]# vi /etc/exports
/home/계정명/nfs *(rw,sync,no_subtree_check,no_root_squash,insecure)
nfs서버 재시작
[root@ubuntu]# /etc/init.d/nfs-kernel-server restart
//장치에서 nfs서버 접속

'linux' 카테고리의 다른 글

ssh dns disable  (0) 2022.01.12
EmbeddedLinux 무선랜 사용  (0) 2021.07.20
cross compiler 설치 후  (0) 2020.08.27
sudo 명령어 패스워드 없이 사용하기  (0) 2019.12.30
Linux 명령어 모음 ...ing  (0) 2019.10.16
Posted by afewgood
,

cross compiler 설치 후

linux 2020. 8. 27. 11:16

make: /usr/local/arm_linux_4.2/bin/arm-linux-gcc: Command not found
make: *** [path/filename.o] Error 127 발생시 해결방법
위의 명시된 경로에 컴파일러 경로를 symbolic link 시켜주면 됨
ex) afewgoodIT
cd /usr/local¶
ln -s /usr/arm-afewgoodIT/arm_linux_4.2 arm_linux_4.2¶
ln -s /usr/arm-afewgoodIT/model_name/ arm_linux_4.3¶

'linux' 카테고리의 다른 글

EmbeddedLinux 무선랜 사용  (0) 2021.07.20
VirtualBox Ubuntu14.04 설치 시 참고사항  (0) 2021.07.08
sudo 명령어 패스워드 없이 사용하기  (0) 2019.12.30
Linux 명령어 모음 ...ing  (0) 2019.10.16
자동 압축해제 스크립트  (0) 2019.06.19
Posted by afewgood
,

sudo -s
비밀번호입력
vi /etc/sudores 또는 visudo

모든명령어에 패스워드를 묻지 않게 하려면
계정명 ALL=(ALL) NOPASSWD:ALL
ex) afewgood ALL=(ALL)NOPASSWD:ALL

특정 명령어에 패스워드를 묻지 않게 하려면[(,)로 구분]
계정명 ALL=(ALL) NOPASSWD:명령어1, 명령어2
ex) afewgood ALL=(ALL) NOPASSWD:/bin/mount, /bin/umount

'linux' 카테고리의 다른 글

VirtualBox Ubuntu14.04 설치 시 참고사항  (0) 2021.07.08
cross compiler 설치 후  (0) 2020.08.27
Linux 명령어 모음 ...ing  (0) 2019.10.16
자동 압축해제 스크립트  (0) 2019.06.19
[Ubuntu] ShellPrompt 변경  (0) 2019.06.07
Posted by afewgood
,

Linux 명령어 모음 ...ing

linux 2019. 10. 16. 18:30

//1. 파일압축(해제) ================================================================
1) zip
- 압축하기
zip -rF (압축파일명).zip (압축할 폴더 또는 파일)
    r: 서브 디렉터리 까지 압축
    F: 한글 이름을 가진 파일까지 압축

zip filename.zip ./*     #현재 폴더에 전부를 압축할때 "./*"는 현재 폴더 전부를 의미
zip -r filename.zip ./*  #현재 폴더 하위에있는 폴더 포함하여 압축
- 압축 풀기
unzip filename.zip
unzip filename.zip -d /foldername/

2) tar
-
옵션
    c:
압축
    z: tar
압축후 gzip압축
    v: verbose
압축과정을 출력
    p:
소유권등 퍼미션을 그대로 유지
    f:
내가 지정한 파일명으로 압축
- 압축하기
$ tar cf [
압축파일명.tar] [압축할 파일 또는 디렉토리]
[root@localhost~]# tar cvf ksnet.tgz /ksnet/                    #
파일압축.
[root@localhost~]# tar czvpf filename.tar.gz public_html/   #tar.gz
파일로 압축(퍼미션유지)
- 압축 풀기
$ tar xf [
압축파일명.tar]
$ tar -xvf filename.tar -C /folder/dest_folder_name/               #
지정된 위치에 압축풀기
[root@localhost~]# tar xzvpf filename.tar.gz -C public_html/   #public_html/에 권한을 유지하며 압축풀기

* tar tar.gz 파일압축의 다른점 : 옵션에서 z 차이(z가 있으면 압축 없으면 묶음)

3) tar.gz
-
압축하기
$ tar zcf [
압축파일명.tar.gz] [압축할 파일/디렉토리]
$ tar -czvf
압축파일명.tar.gz 압축할파일/폴더1 압축할파일/폴더2 압축할파일/폴더3 ...
$ tar -czvf images.tar.gz ./folder/a1.jpg ./folder/a2.jpg ./folder/a3.jpg
$ tar -czvf --exclude=./folder/filename.jpg tarname.tar.gz ./folder    #
예외 압축
-
압축 풀기
$ tar xfz [
압축파일명.tar.gz]
$ tar -xzvf
압축되어있는파일명.tar.gz
$ tar -zxvf filename.tar.gz -C /folder/dest_folder_name/    #
지정된 위치에 압축풀기
*
옵션 : 'z' 옵션이 gz 파일 압축 하기/풀기 옵션

4) tar.bz2(압축률이 가장높음)
-
압축하기
$ tar jcvf [
압축파일명.tar.bz2] [압축할 파일/디렉토리]
-
압축 풀기
$ tar jxvf [
압축파일명.tar.bz2]
$ tar -jxvf filename.tar.bz2 -C /folder/dest_folder_name/
$ tar jxvpf toolchain_160921.tar.bz2
*
옵션 : 'j' 옵션이 bz2 파일 압축 하기/풀기 옵션
============================================================================

//2. Linux 32bit or 64bit check ========================================================
1) getconf LONG_BIT
→ 32 = 32bit
→ 64 = 64bit
2) arch
→ x86_64 = 64bit
→ i386 or i686 = 32bit (i386=old)
3) uname -m
→ x86_64 = 64bit
→ i386 or i686 = 32bit (i386=old)
4) echo $HOSTTYPE
→ x86_64 = 64bit
→ i386 or i686 = 32bit (i386=old)
5) lscpu
→ Architecture: i686 = 32bit
→ Architecture: x86_64 = 64bit
============================================================================

//3. scp 명령어 사용 ===============================================================
scp [file] [계정@host:경로]
ex scp test.zip acount@domain.com:/home/acount/directory/
acount@domain.com's password:_ //계정비밀번호 입력
============================================================================

//4. 저장용량 확인 ================================================================
[root@localhost~]# df -h    #기본값(df -k)은 KB단위로 출력   #df -h //MB단위로 출력
[root@localhost~]# du -sh /home/directoryname/        #디렉토리 사용량 확인
============================================================================

//5. symbolic link =================================================================
[root@localhost~]# ln -s /home/directory/file symboliclinkfile //symbolic link create
[root@localhost~]# rm symboliclinkfile //sysbolic link remove
============================================================================

'linux' 카테고리의 다른 글

cross compiler 설치 후  (0) 2020.08.27
sudo 명령어 패스워드 없이 사용하기  (0) 2019.12.30
자동 압축해제 스크립트  (0) 2019.06.19
[Ubuntu] ShellPrompt 변경  (0) 2019.06.07
[Ubuntu] unexpected operator 쉘스크립트 에러  (0) 2019.06.05
Posted by afewgood
,