리눅스 이용 중 자주 사용하는 행위를 별칭으로 만들어 사용하고자 할때

(EX> was_log 라고 치면 /tomcat/logs 폴더로 이동)

 

alias명령을 이용 할 수 있습니다.

 

alias tomcat_go="cd /usr/local/lib/tomcat"

이렇게 명령어를 입력 하면 그 후 부터는 tomcat_go명령으로 tomcat폴더 이동을 실행 하는 방식 입니다.

매번 명령어를 설정하기 힘드니 보통 해당 계정의 home디렉토리 하위의

.bashrc 파일의 내용을 수정 하거나 .bash_aliases 파일을 만들어서 해당 파일에 별칭을 따로 저장 해주면

터미널 접속시 해당 설정이 불러 와지고 별칭을 사용 할 수 있게 됩니다.

 

.bash_aliases 를 만들어 사용 하려면 .bashrc파일 안의 내용에

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

이렇게 bash_aliases파일을 찾아서 적용하는 소스가 등록 되어 있어야 합니다.

반응형

'OS > 리눅스' 카테고리의 다른 글

ubuntu docker 설치  (0) 2022.03.02
ubuntu18 doker설치 관련 에러(repository 문제)  (1) 2022.03.02
systemd.timer crontab대체  (0) 2022.02.24
crontab 명령어 실행시 계정 변경  (0) 2017.06.21
링크 폴더 생성  (0) 2016.11.22
Posted by 질주하는구
,

우분투18에 도커 설치 관련 명령어 순서 입니다.

 

업데이트 목록 확인
sudo apt update

업데이트 진행
sudo apt upgrade -y

도커 설치를 위한 필수 패키지 설치
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y

도커 gpg인증 진행
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

도커 레파지토리 추가
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

도커 레파지토리 확인
sudo apt-get update && sudo apt-cache search docker-ce

도커 설치
sudo apt-get update && sudo apt-get install docker-ce -y

현재 계정 도커 그룹에 권한 추가
sudo usermod -aG docker $USER

도커 상태 확인
docker ps -a

도커 서비스 시작
sudo systemctl start docker
도커 서비스 시작 프로그램 등록
sudo systemctl enable docker
도커 서비스 상태 확인
sudo service docker status

포테이너 저장소 추가
docker volume create portainer_data
 
포테이너 설치(\줄바꿈 표시로 그대로 사용)
docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v portainer_data:/data \
    portainer/portainer-ce:latest

포테이너 설치 후 9443포트 오픈 및 https://xxx.xxx.xxx.xxx:9443 접속

 

https://opencourse.tistory.com/596

 

구글 클라우드 Google Cloud Platform(GCP) 프리티어 3부 - Docker(도커)와 포테이너(Portainer) 설치하기

도커는 리눅스의 X컨테이너를 이용해 리눅스 안에 또 다른 격리된 환경을 만드는 기술입니다. 간단하게 이야기하자면 도커 컨테이너라는 단위로 한 리눅스 서버안에서 여러가지 리눅스 환경을

opencourse.tistory.com

위의 url참조시 자세한 내용을 확인 할 수 있습니다.

반응형

'OS > 리눅스' 카테고리의 다른 글

alias 명령어 별칭 만들기  (0) 2022.03.04
ubuntu18 doker설치 관련 에러(repository 문제)  (1) 2022.03.02
systemd.timer crontab대체  (0) 2022.02.24
crontab 명령어 실행시 계정 변경  (0) 2017.06.21
링크 폴더 생성  (0) 2016.11.22
Posted by 질주하는구
,

ubuntu18에 doker설치 중 doker 레파지토리를 지정하는 명령어

 

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

실행 후 

sudo apt-get update && sudo apt-cache search docker-ce

도커 설치를 하려고 할때 아래와 같은 에러가 발생되는 경우 설정을 변경 해줘야 합니다.

sudo apt-get update && sudo apt-cache search docker-ce
Hit:1 http://security.debian.org/debian-security buster/updates InRelease
Hit:2 http://packages.cloud.google.com/apt cloud-sdk-buster InRelease
Hit:3 http://deb.debian.org/debian buster InRelease                 
Hit:4 http://deb.debian.org/debian buster-updates InRelease         
Get:5 http://packages.cloud.google.com/apt google-cloud-packages-archive-keyring-buster InRelease [5553 B]
Hit:6 http://deb.debian.org/debian buster-backports InRelease       
Hit:7 http://packages.cloud.google.com/apt google-compute-engine-buster-stable InRelease
Ign:8 https://download.docker.com/linux/ubuntu buster InRelease
Err:9 https://download.docker.com/linux/ubuntu buster Release
  404  Not Found [IP: 99.86.146.98 443]
Reading package lists... Done
E: The repository 'https://download.docker.com/linux/ubuntu buster Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

위의 에러가 발생된 경우 /etc/apt/sources.list 파일을 확인 해보면

cat 혹은 vi 명령으로 확인

deb-src [arch=amd64] https://download.docker.com/linux/ubuntu buster stable

으로 설정이 되어 있습니다. download관련 url이 직접 접속도 허용 하기 때문에 해당 경로에 방문 해보면

레파지토리 목록

와 같이 buster 폴더가 없는 상태 일 수 있습니다. 

https://forums.docker.com/t/cant-install-docker-on-ubuntu-20-04/93058/3

 

Can't install docker on Ubuntu 20.04

I haven’t upgraded to 20 yet, but this happened to me with several packages in early days of earlier releases. They just haven’t officially released a focal version yet. This is untested but you can try using their package for ubuntu 19.10 by manually

forums.docker.com

http://daplus.net/ubuntu-docker-%EC%A0%80%EC%9E%A5%EC%86%8C%EC%97%90-ubuntu%EC%97%90%EC%84%9C-apt-get-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8-%EC%8B%A4%ED%96%89%EC%8B%9C-%EB%A6%B4%EB%A6%AC%EC%8A%A4-%ED%8C%8C%EC%9D%BC/

 

[ubuntu] Docker 저장소에 Ubuntu에서 apt-get 업데이트 실행시 릴리스 파일이 없음 - 리뷰나라

Ubuntu 16.10을 사용하고 있으며 여기에 있는 지침에 따라 Xenial 빌드를 사용하여 최근에 Docker (v1.12.4)를 설치 했습니다 . 컨테이너를 만드는 데 문제가 발생하지 않았으며 자동으로 다시 시작되는지

daplus.net

내용을 보면 해당 버전의 이미지가 아직 업로드 안된경우 $(lsb_release -cs) 이 명령으로 자신의 ubuntu 버전과 맞는

설정을 지정 하게 되어 있는데 해당 버전의 이미지가 없는 경우로 생각 됩니다.

(리눅스 콘솔에서 lsb_release -cs 명령어 실행시 buster라고 출력되고 lsb_release -a 명령어 실행시 리눅스 버전 상세 정보를 얻을 수 있습니다.)

 

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu cosmic stable"

경로를 cosmic로 변경 후 설치를 시도 했는데 설치는 정상적으로 가능 합니다.

 

도커 사용중 버전 문제가 발생되는 경우 해당 글을 갱신 하도록 하겠습니다.

반응형

'OS > 리눅스' 카테고리의 다른 글

alias 명령어 별칭 만들기  (0) 2022.03.04
ubuntu docker 설치  (0) 2022.03.02
systemd.timer crontab대체  (0) 2022.02.24
crontab 명령어 실행시 계정 변경  (0) 2017.06.21
링크 폴더 생성  (0) 2016.11.22
Posted by 질주하는구
,

리눅스 서버 운영중 익숙한 crontab을 이용한 스케줄 작업을 진행 하지 못하는 경우 systemd.timer를 이용해서 스케줄 작업을 진행 할 수 있습니다.
리눅스 서비스 관리에 스케줄이 포함된 작업 방식 입니다.

root, user에 대한 서비스를 등록 및 운영 할 수 있어 crontab과 동일한 환경으로 스케줄을 운영 할 수 있습니다.

기본적인 사용방법은 아래와 같습니다.(root계정 기준)
/etc/systemd/system 하위 폴더로 이동시 하위에 이미 동작하고 있는 기본 리눅스 service 및 timer설정을 확인 할 수 있습니다.
저희는 해당 폴더 하위네 .service 와 해당 서비스를 스케줄할 .timer를 생성하고 등록 및 사용할 예정 입니다.

해당 폴더에 임의의 service_name.service, service_name.timer 2개의 파일을 생성 하고 

service_name.service

[Unit]
Description=test service

[Service]
Type=simple
WorkingDirectory=/root/testwork
ExecStart=/root/testwork/date_service.sh

[Install]
WantedBy=multi-user.target


service_name.timer

[Unit]
Description=test timer

[Timer]
OnBootSec=1min
OnCalendar=*-*-* 01:00:00
Unit=service_name.service

[Install]
WantedBy=multi-user.target

이라는 2개의 파일을 생성 해줍니다. ExecStart의 date_service.sh 파일은
안래와 같은 내용으로 동작 확인을 위한 내용으로 등록 했습니다.

#!/bin/bash
date >> /root/testwork/date.log


2개의 파일을 생성 후 


systemctl start service_name.timer
명령어를 실행 하면 해당 타이머가 실행 됩니다.
(타이머가 지정한 서비스가 설정에 맞춰 주기적으로 동작 하게 됩니다.)

실행 하려는 서비스를 찾지 못하는 경우 아래의 명령어를 실행 후 다시 start해주시면 됩니다.
systemctl daemon-reload

service 및 timer파일에 대한 간략한 내용을 설명 하면 아래와 같습니다.
[Unit]
Description=test service <-- 해당 서비스 설명

[Service]
Type=simple <-- 서비스 실행 방식 기본은 simple이고 해당 방식은 서비스의 정상 동작 여부 상관 없이 실행 후 해당 서비스가 정상이라고 가정 합니다.
WorkingDirectory=/root/testwork <-- 서비스 동작 폴더
ExecStart=/root/testwork/date_service.sh <-- 서비스 동작시 실행 되는 명령

[Install]
WantedBy=multi-user.target <-- 서비스 동작시 의존성(?) 참고할 install그룹 다른 분들 글을 보면
해당 부분에 default.target을 작성 하는 경우도 있는데 해당 내용은 아래 링크들을 보면 자세히 나와 있습니다.
가장 많이 나요는 내용을 요약하면 WantedBy에서 지정하는 install요소는 7(0~6)개로 구성되어 있고 리눅스 서버의 시작시
진행 상태와 연관이 있습니다. multi-user.target은 리눅스 서버의 3번 레벨로 텍스트 서비스 구성이 완료되는 시점을 이야기 합니다.(이 시점에 네트워크 등의 연결이 활성화 됩니다.)
default.target은 리눅스 서버에 기본으로 잡혀 있는 시점으로 
systemctl get-default 명령으로 확인 할 수 있고 해당 내용을 테스트한 gcp vm서버의 경우 grapchical.target 으로 되어 있었습니다.
해당 시점은 5번 레벨로 GUI 인터페이스 관련 서비스가 가능한 시점 입니다.
해당 설정은 타이머 나 서비스를 리눅스 시작 시점에 실행 시키는 systemctl enable 명령과 연관된 설정이라서 
몇몇 분들의 테스트 코드에는 없는 경우도 있습니다.

[Unit]
Description=test timer <-- 설명

[Timer]
OnBootSec=1min <-- 리눅스 부팅 후 얼마의 시간이 흐르고 실행 할지
OnCalendar=*-*-* 01:00:00 <-- 실행 스케줄 년_월_일 시:분:초 5분단위로 작업 하고자 하는 경우 OnCalendar=*:*:5
등록 하려는 스케줄의 경우 (systemd-analyze calendar "*-*-* 01:00:00") 명령으로 동작 여부를 확인 할 수 있습니다.
Unit=service_name.service <-- 타이머가 실행할 서비스 명

[Install]
WantedBy=multi-user.target <-- 관련 target



추가로 서비스는 root뿐만 아니라 user 로도 실행이 가능하고 이 경우 .service .timer 파일은 
/home/user name폴더/.config/systemd/user 폴더 하위로 생성 되어야 합니다.
(해당 폴더가 없는경우 systemd폴더 부터 만든 후 작업 하시면 됩니다.)
.config폴더가 보이지 않는 경우 숨김 폴더도 보이는 ls -al 명령으로 확인 후 들어가셔도 되고 그냥 cd /home/username폴더/.config 로 이동 하셔도 됩니다.

해당 폴더에 service 및 timer파일을 생성하고 나서는 실행 명령에 --user 옵션만 추가하면 서비스를 스케줄 할 수 있습니다.
아래는 systemd.timer 설정시 사용하는 명령어 및 설명 입니다.


systemctl list-timers --> 실행중인 스케줄 목록을 확인

systemctl status service_name.timer --> 스케줄의 상태를 확인

systemctl start service_name.timer --> 스케줄을 실행

systemctl stop service_name.timer --> 스케줄을 중지

systemctl enable service_name.timer --> 스케줄을 리눅스 시작시 실행되게 서비스 등록

systemctl disable service_name.timer --> 등록된 스케줄 중지

journalctl -r -u service_name.service --> 서비스 동작 로그 확인(에러가 발생되는지 여기에서 확인 가능 합니다.)

systemctl daemon-reload --> 서비스 목록 갱신(서비스 파일을 못찾는다고 나오면 실행)

systemd-analyze calendar "*-*-* 01:00:00" --> 스케줄 설정 동작 확인

위의 내용을 user에서 실행 하는경우 아래와 같습니다.

systemctl --user list-timers
systemctl --user status service_name.timer
systemctl --user start service_name.timer
systemctl --user stop service_name.timer
systemctl --user enable service_name.timer
systemctl --user disable service_name.timer
journalctl --user -r -u service_name.service
systemctl --user daemon-reload

추가로 user의 경우 콘솔 접속이 종료되는 경우 실행중인 서비스도 같이 종료되기 때문에 root계정으로 아래의 명령어를 실행 해서 
서비스가 유지되게 작업 해줘야 합니다.

loginctl enable-linger 사용자계정

 

https://blog.o3g.org/tips/cron-%EB%8C%80%EC%8B%A0-systemd-timer-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/

 

cron 대신 systemd.timer 사용하기 : 오픈 인프라 엔지니어 그룹

그동안 반복 스케쥴 작업은 Cron (혹은 Crond, Crontab)에 의해 실행되는게 당연시되었습니다. systemd 에서는 cron 작업과 동일하게 반복적인 스케쥴을 timer를 통해 실행할 수 있습니다. systemd.timer는 cron

blog.o3g.org

https://isntyet.tistory.com/121

 

(centos7) systemd timer

corntab을 이용하여 루틴한 작업을 돌리고있었는데 systemd로 옮겨야하는 상황이 왔다. (단순히 php파일 하나 실행하면되는 거라 안 옮겨도 되지만 어쨌든 옮기게됬다) 검색을해서 보니 서비스를 만

isntyet.tistory.com

https://chobowarrior.tistory.com/35

 

systemd timer

필자는 리눅스에서 반복 작업을 하기 위해서 주로 cron을 사용해 왔다. 하지만, 필자가 사용하는 리눅스에서는 cron이 기본으로 설치되어 있지 않아 패키지 매니저를 이용해 설치

chobowarrior.tistory.com

https://hippogrammer.tistory.com/75

 

Systemd Target 사용

Systemd Target은 CentOS 7 이전 버전에서 사용하는 runlevel과 비슷한 개념이다. CentOS 7 이전 버전에서의 runlevel은 리눅스 시스템이 어떤 상태에서 실행되어야 하는지를 결정하기 위해서 사용하는 명령

hippogrammer.tistory.com

https://twpower.github.io/213-systemd-timer-example

 

[Linux] systemd service timer 예제

Practice makes perfect!

twpower.github.io

https://springboot.cloud/16

 

systemd 서비스 unit파일 작성에서 했던 실수

요즘 kafka, elasticsearch, vertica, ansible 등등등을 깔고 연동하고 하는 일을 많이하다보니 자연스럽게 이걸 시스템 서비스로 작성하는 것들도 하게 되었다. 그러면서 몇 가지 삽질을 한 것에 대해서

springboot.cloud

 

반응형

'OS > 리눅스' 카테고리의 다른 글

ubuntu docker 설치  (0) 2022.03.02
ubuntu18 doker설치 관련 에러(repository 문제)  (1) 2022.03.02
crontab 명령어 실행시 계정 변경  (0) 2017.06.21
링크 폴더 생성  (0) 2016.11.22
ssh/sftp 포트 지정  (0) 2016.02.18
Posted by 질주하는구
,

crontab 명령어 설정시 계정의 환경 변수에 따라서 명령어 실행이 안된다면 해당 계정에 크론을 추가하지 않고 하나의 계정의 설정에서 su 명령을 추가해 해결 할 수 있습니다.


00 00 * * 1 su - oracle -c "/home/oracle/oracle_hotbackup.sh"


su - oracle 라고 실행을 하고 여기에서 su 및 - 부분은 기본 계정 변경시와 동일 합니다. - 을 해줘야 환경 변수가 변경이 되게 되고 -c 옵션은 command라는 의미를 가지게 됩니다.

반응형

'OS > 리눅스' 카테고리의 다른 글

ubuntu18 doker설치 관련 에러(repository 문제)  (1) 2022.03.02
systemd.timer crontab대체  (0) 2022.02.24
링크 폴더 생성  (0) 2016.11.22
ssh/sftp 포트 지정  (0) 2016.02.18
touch 명령 하위 디렉토리까지 적용 하기  (0) 2015.03.09
Posted by 질주하는구
,

링크 폴더 생성

OS/리눅스 2016. 11. 22. 17:51

ln [옵션] [원본폴더경로] [링크폴더명]


ln -s /home/testFolder test


-s 라는 옵션은 같은 링크 폴더가 있는경우 재 생성 한다는 옵션 입니다.

반응형

'OS > 리눅스' 카테고리의 다른 글

systemd.timer crontab대체  (0) 2022.02.24
crontab 명령어 실행시 계정 변경  (0) 2017.06.21
ssh/sftp 포트 지정  (0) 2016.02.18
touch 명령 하위 디렉토리까지 적용 하기  (0) 2015.03.09
리눅스 재시작 명령어  (0) 2015.03.05
Posted by 질주하는구
,

ssh -p 11800 testUser@220.78.188.201

-p 옵션으로 접속 하고자 하는 port를 지정하고 계정@아이피를 입력 합니다.

sftp의 경우 앞의 ssh부분만 sftp로 변경 해주면 됩니다.

반응형

'OS > 리눅스' 카테고리의 다른 글

crontab 명령어 실행시 계정 변경  (0) 2017.06.21
링크 폴더 생성  (0) 2016.11.22
touch 명령 하위 디렉토리까지 적용 하기  (0) 2015.03.09
리눅스 재시작 명령어  (0) 2015.03.05
폴더 용량 관련 명령어  (0) 2015.03.05
Posted by 질주하는구
,

touch 명령을 하위 디렉토리 까지 적용하기


touch 명령 자체에는 recursive 옵션이 없기 때문에

1) find directory_name -exec touch {} \; 

또는

2) find directory_name -print | xargs touch 

을 사용해서 터치 명령을 실행 한다.

반응형

'OS > 리눅스' 카테고리의 다른 글

링크 폴더 생성  (0) 2016.11.22
ssh/sftp 포트 지정  (0) 2016.02.18
리눅스 재시작 명령어  (0) 2015.03.05
폴더 용량 관련 명령어  (0) 2015.03.05
chown명령어  (0) 2015.03.05
Posted by 질주하는구
,

리눅스 재시작 :   shutdown -r now


리눅스 종료 :   shutdown -h now



반응형

'OS > 리눅스' 카테고리의 다른 글

ssh/sftp 포트 지정  (0) 2016.02.18
touch 명령 하위 디렉토리까지 적용 하기  (0) 2015.03.09
폴더 용량 관련 명령어  (0) 2015.03.05
chown명령어  (0) 2015.03.05
리눅스 설치메뉴얼(간이 메뉴얼)  (0) 2015.03.04
Posted by 질주하는구
,

df 명령어 : 파티션별로 하드디스크 전체 용량이 얼마나 남았는지 알아보고자 할때 사용


ex) # df -h


 


du 명령어 : 현재 드라이브 용량이 아니라 지정해준 디렉토리내의 파일이 차지하는 용량을 알아보고자 할때 사용


ex) # du -m /home ==> '-m'은 파일용량을 MByte단위로 표시해 주고 '-b', '-k' 등으로 사용해도 된다. 옵션이 없으면 default로 KByte이다.

반응형

'OS > 리눅스' 카테고리의 다른 글

touch 명령 하위 디렉토리까지 적용 하기  (0) 2015.03.09
리눅스 재시작 명령어  (0) 2015.03.05
chown명령어  (0) 2015.03.05
리눅스 설치메뉴얼(간이 메뉴얼)  (0) 2015.03.04
리눅스 명령어 모음(알파벳)  (0) 2015.03.04
Posted by 질주하는구
,