반응형

안녕하세요 가야태자 @talkit 입니다. 

오늘은 카프카라는 프로그램을 설치 해보겠습니다. 

카프카에 대한 설명은 조금 안바빠지면 달고, 까먹지 않도록 카프카를 설치 하는 과정을 글에 담을 예정입니다. 

그래도 간단하게 카프카를 이야기 하면,

소스와 타겟을 연계해주는 프로그램 또는 링크드인에서 개발한 Message Queue 정도로 생각 됩니다. 

Apache Kafka 카프카는 아파치의 메인 프로젝트 중에 하나 입니다. Linkedin에서 개발 후에 아파치 재단에 기부 했습니다. 

그럼 본격적으로 설치를 시작 해보겠습니다. 

Java가 리눅스에 설치 되어 있다고 생각하고 설치를 시작 하겠습니다.

 

https://kafka.apache.org/quickstart

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

저는 우선 저문서를 보고 따라해 보겠습니다. 

그런데 약간 변경 해야할 부분이 있어서 변경 하면서 진행 하겠습니다. 

카프카를 다운로드 해야 하는데 저기서는 최신 버전을 다운로드 하고 있습니다. 

제가 다운로드 해야할 버젼은 2.13-3.40 이라서 위에서 현재 링크 걸려 있는 링크를 변경 해야 합니다. 

https://kafka.apache.org/downloads

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

위 페이지로 이동 합니다. 

Scala의 버전이 뭔지는 모르겠지만, 설치 해야 할 버전이 2.13 즉 앞에 것이고 뒤에 것이 실질적으로 카프가 버전 입니다. 

3.4.0

Kafka 3.4.0 includes a significant number of new features and fixes. For more information, please read our blog post and the detailed Release Notes.

위 부분에 있는 두번째 파일을 다운로드 합니다. 

cd /opt
mkidr kafka
cd kafka
wget https://archive.apache.org/dist/kafka/3.4.0/kafka_2.13-3.4.0.tgz

저는 /opt 폴더에 요즘은 설치를 하고 있스니다. 예전에는 /usr/local 에 설치를 많이 했었습니다. 

다운로드 끝났으면 다운로드 받은 파일을 압축을 해제 합니다. 

tar xzvfp kafka_2.13-3.4.0.tgz

압축이 잘 해제 되었으면

해당 폴더로 이동 합니다. 

cd kafka_2.13-3.4.0
 # Start Zookeeper
 bin/zookeeper-server-start.sh config/zookeeper.properties

주키퍼를 우선 실행 합니다. 

실행 방법은 위에서 두번째 줄을 복사 붙여 넣기 하시면 됩니다. ^^

위아 같이 실행 하시면 실행은 됩니다만, 해당 창을 계속 띄워 두고 있어야 합니다. 

우선은 띄우두고 ^^

카프카를 실행 해보겠습니다. 

새로운 콘솔창을 하나 더 여십시오 Putty로 한번더 연결 하셔도 됩니다. 

cd /opt/kafka/kafka_2.13-3.4.0

# Start Kafka
bin/kafka-server-start.sh config/server.properties

요렇게 하시면 잘 실행이 될 것입니다. 

단, 디렉토리는 직접 설치한 디렉토리로 이동 하셔야 합니다. 

창을 하나 띄워서 간단하게 실제로 카프카에 토픽을 하나 만들어 보겠습니다. 

그리고, 오늘 글은 마치도록 하겠습니다. 

cd /opt/kafka/kafka_2.13-3.4.0
# Create topic
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

위와 같이 토픽을 만드실 수 있습니다. 

이번에도 Putty를 그대로 두시고 새 Putty를 여서서 접속 하신 다음에 위 명령어를 입력해 주셔야 합니다. 

저는 순서대로 실행 했더니 ^^

Created topic quickstart-events.

위와 같은 결과가 나왔습니다.

이왕 토픽을 만들었으니, 토픽 리스트도 한번 보겠습니다. 

# Show topic information
bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092

위 명령어를 입력 했더니 아래와 같이 잘 실행 되었습니다. 

Topic: quickstart-events        TopicId: N8Ymu4GGTNiCgSp63YK_cw PartitionCount: 1       ReplicationFactor: 1    Configs:
        Topic: quickstart-events        Partition: 0    Leader: 0       Replicas: 0     Isr: 0

앗 위에서 설명 드린다고 한 것을 하나 못한게 있어서 

이어서 작성 하겠습니다. 

우선, 여러분들이 띄워 둔 zookeeper, kafka 실행 창을  콘트롤(Ctrl) + C 키를 눌러서 중단 하십시오.

systemctl형식으로 만들어도 좋습니다. 

하지만, 이번에는 그냥 백그라운로드로 실행하는 방법을 알려 드리겠습니다. 

 cd /opt/kafka/kafka_2.13-3.4.0
 # Start Zookeeper
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
 
 # Start Kafka
nohup bin/kafka-server-start.sh config/server.properties &

위와 같이 실행 하시면 됩니다. 

아까는 중단 할 때 콘트롤(Ctrl) C를 이용해서 했는데 백그라운드로 떠있는 아이들은 어떻게 죽이나요?

종료 하는 방법은 켜실때와 반대로 카프카 먼저 죽이고,

주키퍼를 죽이는 것이 좋습니다. 

cd /opt/kafka/kafka_2.13-3.4.0
#Stop kafka
bin/kafka-server-stop.sh

#Stop zookeeper
bin/zookeeper-server-stop.sh

위 명령어를 수행 해서 죽일 수 있습니다. 

[2]+  Exit 143                nohup bin/kafka-server-start.sh config/server.properties
[1]+  Exit 143                nohup bin/zookeeper-server-start.sh config/zookeeper.properties

백그라운드로 실행 되었던 2가지 명령어가 종료 된 것을 볼 수 있습니다. 

감사합니다. 

 

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

요즘 또 좀 바빠서 블로그와 스팀잇에 글이 뜸했습니다. 

바쁘긴 할 것 같습니다. 기술 공부 겸 다시 글을 적습니다. ^^

엘라스틱 서치를 설치할일이 있는데 Oracle VM에 메모리가 모자랍니다. 무조건 2GB 이상이어야 한다가 조건입니다. 그래서 넉넉하게 스왑(swap)을 4GB 정도로 잡아 보겠습니다. 

sudo swapon --show

우선 위 명령어로 스왑이 있는지 봅니다. 

현재 저는 없습니다. ^^

sudo fallocate -l [SIZE] /swapfile

위 명령어로 스왑 파일을 생성 합니다. 

실제로 해보겠습니다. 

sudo fallocate -l 4G /swapfile

저는 4GB를 목표로 하고 있어서 위와 같이 쳤습니다. 

sudo chmod 600 /swapfile

위 명령어로 퍼미션을 조정 합니다. 

sudo mkswap /swapfile

위명령어로 스왑 파티션을 포맷 합니다. 

sudo swapon /swapfile

 위명령어로 swap을 켭니다. ^^

혹시나 오류나면 앞에 것을 해보십시오 ^^ 저는 방금 T.T

앞에 중에 하나를 안했더라구요.

swapon: /swapfile: read swap header failed

이런 오류가 발생해서 ^^ 저위에 mkswap를 다시 했습니다. 

sudo vi /etc/fstab

위명령어로 fstab을 여십시오.

/swapfile swap swap defaults 0 0

맨 마지막줄에 위 내용을 복사해서 넣고 저장하고 나오십시오.

:wq로 빠져 나오시면 됩니다. 

free -m
              total        used        free      shared  buff/cache   available
Mem:            970         181          94           2         694         630
Swap:          4095           0        4095

free -m 으로 확인하면 4GB가 늘어 난 것을 확인 할 수 있습니다. 

감사합니다. 

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

오늘은 wc 명령어를 공부해 보겠습니다. 

wc는 word count 입니다.

그래서, 단어가 몇개인지 보여 줍니다. 

ls 명령어와 함께 wc를 사용해보겠습니다. 

ls | wc -l

위명령어를 실제로 한번 쳐 보겠습니다. 

 ls | wc -l
12
(base) talkit@ubuntu:~$ ls
build  dbeaver-ce_latest_amd64.deb  Desktop  Documents  Downloads  Music  Pictures  Public  Templates  upvu_web  Videos  vmwaretools

실제로 ls 를 해보면 나온 단어들이 12개 입니다. 

ls -al 과 조합을 해보겠습니다. 

(base) talkit@ubuntu:~$ ls -al | wc -l
36
(base) talkit@ubuntu:~$ ls -al
total 123148
drwxr-xr-x 26 talkit talkit      4096 Mar 15 05:51 .
drwxr-xr-x  3 root   root        4096 Feb 25 02:42 ..
-rw-------  1 talkit talkit       565 Mar  6 06:41 .bash_history
-rw-r--r--  1 talkit talkit       220 Feb 25 02:42 .bash_logout
-rw-r--r--  1 talkit talkit      4257 Mar 14 07:40 .bashrc
drwxrwxr-x  2 talkit talkit      4096 Mar  6 06:40 build
drwxrwxr-x 19 talkit talkit      4096 Mar 15 05:50 .cache
drwxrwsr-x  4 talkit talkit      4096 Mar 14 06:53 .conda
drwx------ 15 talkit talkit      4096 Mar 15 05:50 .config
-rw-rw-r--  1 talkit talkit 125960484 Feb 19 10:18 dbeaver-ce_latest_amd64.deb
drwxr-xr-x  2 talkit talkit      4096 Feb 25 02:48 Desktop
drwxr-xr-x  2 talkit talkit      4096 Feb 25 02:48 Documents
drwxr-xr-x  3 talkit talkit      4096 Mar 20 04:53 Downloads
drwxrwxr-x  3 talkit talkit      4096 Mar  5 06:24 .eclipse
drwx------  3 talkit talkit      4096 Feb 25 02:48 .gnupg
drwxrwxr-x  5 talkit talkit      4096 Mar 14 08:51 .ipython
drwxrwxr-x  2 talkit talkit      4096 Mar 14 08:52 .jupyter
drwxr-xr-x  5 talkit talkit      4096 Mar 14 06:20 .local
drwx------  4 talkit talkit      4096 Mar  6 06:56 .mozilla
drwxr-xr-x  2 talkit talkit      4096 Feb 25 02:48 Music
drwxrwxr-x  5 talkit talkit      4096 Mar  6 07:03 .npm
drwxr-xr-x  2 talkit talkit      4096 Feb 25 02:48 Pictures
-rw-r--r--  1 talkit talkit       807 Feb 25 02:42 .profile
drwxr-xr-x  2 talkit talkit      4096 Feb 25 02:48 Public
drwx------  2 talkit talkit      4096 Mar 15 05:51 .putty
-rw-------  1 talkit talkit         7 Mar 14 07:41 .python_history
-rw-r--r--  1 talkit talkit         0 Feb 25 03:47 .sudo_as_admin_successful
drwxrwxr-x  2 talkit talkit      4096 Mar  5 06:23 .swt
drwxr-xr-x  2 talkit talkit      4096 Feb 25 02:48 Templates
drwxrwxr-x  8 talkit talkit      4096 Mar  6 07:10 upvu_web
drwxr-xr-x  2 talkit talkit      4096 Feb 25 02:48 Videos
drwxrwxr-x  3 talkit talkit      4096 Feb 25 03:47 vmwaretools
-rw-rw-r--  1 talkit talkit       262 Mar 14 08:05 .wget-hsts
drwxrwxr-x  3 talkit talkit      4096 Mar  6 06:48 .yarn
-rw-rw-r--  1 talkit talkit       116 Mar  6 06:47 .yarnrc

36이 나왔는데 저 줄을 세어 보시면 36줄입니다. 

ls 강좌에서 -al 을 하면 숨어 있는 모든 파일들을 보여준다고 말씀 드렸는데 숨어 있는 파일들이 많습니다. ^^

저도 잘 써보지는 않는데 -c 하고 -m 이 있는데 차치를 한번 보겠습니다. 

wc -l # 라인수를 세고요.
wc -c # 바이트 수를 세고요.
wc -m # 캐릭터 수를 세고요.
wc -w # 단어 수를 셉니다.

여러분도 각각 한번씩 해보시기 바랍니다. 

감사합니다. 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

오늘 같이 이야기 해볼 리눅스 명령어는 find 입니다. 

find 영어로 찾다가 되겠습니다. 리눅스에서 find는 제가 잘 안써서 ^^ 

find 찾을위치 -name 찾을내용(주로파일명)

다양한 명령어가 있겠지만, 저는 주로 저 명령어 밖에 사용하지 않습니다. ^^

find / -name ftp

위와 같이 사용하면 ftp 를 찾아 줍니다. 한번 해보겠습니다. 

sudo find / -name ftp
find: ‘/run/user/1000/doc’: 허가 거부
find: ‘/run/user/1000/gvfs’: 허가 거부
/etc/alternatives/ftp
/srv/ftp
/var/lib/dpkg/alternatives/ftp
/usr/share/doc/ftp
/usr/lib/apt/methods/ftp
/usr/bin/ftp

ftp가 있는 위치를 찾아 줍니다. 

find 찾을위치 -name "찾을내용패턴"

이번에는 조금 다르게 찾아 보겠습니다. 아까 -name 뒤에 명령어를 넣으면 정확하게 그 파일을 찾아 줍니다. 

이번에는 * 를 이용해서 팬턴으로 찾아 보겠습니다.

find / -name "*ftp*"

위와 같이 찾아 봤습니다. 

sudo find / -name "ftp*"
find: ‘/run/user/1000/doc’: 허가 거부
find: ‘/run/user/1000/gvfs’: 허가 거부
/etc/ftpusers
/etc/alternatives/ftp.1.gz
/etc/alternatives/ftp
/srv/ftp
/var/lib/dpkg/alternatives/ftp
/var/lib/dpkg/info/ftp.postinst
/var/lib/dpkg/info/ftp.md5sums
/var/lib/dpkg/info/ftp.list
/var/lib/dpkg/info/ftp.prerm
/snap/core20/1828/usr/lib/python3.8/__pycache__/ftplib.cpython-38.pyc
/snap/core20/1828/usr/lib/python3.8/ftplib.py
/snap/core20/1822/usr/lib/python3.8/__pycache__/ftplib.cpython-38.pyc
/snap/core20/1822/usr/lib/python3.8/ftplib.py
/usr/share/man/man1/ftp.1.gz
/usr/share/perl5/LWP/Protocol/ftp.pm
/usr/share/perl5/URI/ftp.pm
/usr/share/gvfs/mounts/ftps.mount
/usr/share/gvfs/mounts/ftp.mount
/usr/share/gvfs/mounts/ftpis.mount
/usr/share/vim/addons/ftplugin
/usr/share/doc/apt-utils/examples/ftp-archive.conf
/usr/share/doc/ftp
/usr/lib/python3.8/ftplib.py
/usr/lib/python3.8/__pycache__/ftplib.cpython-38.pyc
/usr/lib/apt/methods/ftp
/usr/include/arpa/ftp.h
/usr/bin/ftp
/home/talkt2/wgettest/192.168.0.27/ftpserver5.txt

의와 같이 ftp 뒤에 뭐가 붙어 있어도

/usr/include/linux/netfilter/nf_conntrack_ftp.h
/usr/include/arpa/tftp.h
/usr/include/arpa/ftp.h
/usr/bin/gftp-text
/usr/bin/apt-ftparchive
/usr/bin/pftp
/usr/bin/fzsftp
/usr/bin/sftp
/usr/bin/vsftpdwho
/usr/bin/netkit-ftp
/usr/bin/ftp
/usr/bin/gftp-

ftp 앞에 뭐가 붙어 있어도 찾아 줍니다. 

/로 찾으면 리눅스의 모든 곳에서 찾을 수 있습니다. 

이때는 명령어 앞에 sudo를 붙여 주시면 됩니다. 

저는 레드햇 계열에서 root로 작업할때의 생각으로 sudo를 안붙여서 ^^ 검색을 못한다는 메시지를 받네요 ^^

오늘은 find 명령어에 대해서 알아 봤습니다. 

감사합니다. 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

오늘은 리눅스에서 어떠게 아이피를 할당하는지 알아보겠습니다.

저위에 보이시죠 ^^

Automatic(DHCP), Manual 이라는 방식으로 할당합니다. 

DHCP는 IP를 분배하는 서버로 부터 자동으로 아이피를 할당 받는 방법입니다. 

Manual 즉 수동은 사용자가 직접 IP를 할당하는 방법입니다. 

이 둘의 다른 이름은 동적 아이피와 고정/정적 아이피 입니다. 

동적이라는 말은 그야말로 아이피가 컴퓨터가 켜질때 마다 변경 될 수 있다는 뜻입니다. 

일반적으로 우리가 사용하는 KT, SKT등의 ISP에 받은 아이피는 고정 아이피 서비스를 신청하지 않은 이상 동적 아이피입니다. 

그런데, 보통 요즘은 공유기를 사용하기 때문에 공유기 아래의 아이피들은 고정 IP로 할당할 수 있습니다. 제 글에서 처럼 서버를 사용할 경우는 공유기 아래의 IP라도 고정으로 할당해 두는 것이 좋습니다. ^^

그래서 저도 확인을 해봤습니다. ^^

그랬더니 저도 그림에 나오는 것 처럼 동적 IP를 할당 받아서 사용하고 있었습니다. ^^

그래서 오늘 저도 변경을 해보려고 합니다. 

제가 만들어 놓은 두대의 VM 모두 DHCP를 사용하고 있습니다. 

그래서 이 두대를 다 현재 사용중인 IP로 고정 IP화 할 생각입니다. 

그래서 한대는 Text방식으로 하고, 한대는 GUI 방식으로 변경 해보겠습니다. 

우선 왼쪽에 있는 우분투를 먼저 GUI 방식으로 변경 해보겠습니다. 

현재 제가 DHCP로 할당 받은 정보는 위와 같습니다. 

저는 저대로 할당할 계획입니다. 

다시 IPv4 탭으로 이동합니다. 

매뉴얼로 변경해줍니다. 

휠로 내리시거나, 오른쪽의 스크롤을 내리시면 위와 같이 만드십시오.

그리고, 할당하시고자하는 IP주소와 Netmask, Gateway 값을 입력 합니다. 

저 같은 경우 위와 같이 할당을 했습니다. 

우측 상단의 Apply를 클릭하시면 적용 됩니다. 

고정 아이피로 변경 후에도 잘 나오는 접속이 되는 것을 확인할 수 있습니다. 

그런데, 제가 ^^ 저 수정하는 화면으로 어떻게 접근 하는지를 위에 안썼네요 ^^

꺼구로 저위에 적어도 되겠지만, 궁금 하시라고 여기다가 적어 두겠습니다. 

우측 하단의 바둑판 모양 아이콘을 클릭하시면 오른쪽 처럼 여러가지 프로그램이 나오는데 저기서 Settings를 클릭하십시오.

왼쪽 젤 위에 Network 보이시죠 ^^

그리고 저기 Connected 1000Mb/s 옆에 톱니바퀴 보이시죠 저걸 클릭하십시오.

그러면 위와 같이 나옵니다. 

젤 처음 그림에서 보여 드린 것은 IPv4 탭으로 이동한 화면 입니다. 

GUI 방식으로 변경하는 방법은 여기까지로 마치고 다음 글에서 CLI 방식으로 변경하는 방법을 알려 드리겠습니다. 

감사합니다. 

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

[무료소프트웨어] 무료 통합 데이터베이스 클라이언트 DBeaver 설치하기 How to install DBeaver Free Universal Database Client. :: 가야태자의 IT이야기 (tistory.com)

 

[무료소프트웨어] 무료 통합 데이터베이스 클라이언트 DBeaver 설치하기 How to install DBeaver Free Univer

안녕하세요 가야태자 @talkit 입니다. MariaDB를 이용한 Database 사용하기 #003 - Cleint DBeaver 설치하기 https://talkit.tistory.com/569 위 글에서도 설치하는 법을 알려 드렸지만, 동일 할껍니다. 하지만, 버전이

talkit.tistory.com

윈도우즈에 설치하실 분들은 위 글을 참조 하시면 됩니다. 

이번 글에서는 설치만 하고 다음 글에서 접속에 관련된 이야기를 진행하겠습니다. 

다운로드

Download | DBeaver Community

 

Download | DBeaver Community

Download Tested and verified for MS Windows, Linux and Mac OS X. Install: Windows installer – run installer executable. It will automatically upgrade version (if needed). MacOS DMG – just run it and drag-n-drop DBeaver into Applications. Debian package

dbeaver.io

다운로드는 위 URL에서 다운로드 하시면 됩니다. 

  • Linux Debian package (installer)

위 링크를 복사하십시오.

wget https://dbeaver.io/files/dbeaver-ce_latest_amd64.deb -O dbeaver-ce_latest_amd64.deb

위와 같이 리눅스 쉘 상에서 내리면 됩니다. 

저도 한번 해보겠습니다. 

wget https://dbeaver.io/files/dbeaver-ce_latest_amd64.deb -O dbeaver-ce_latest_amd64.deb 
--2023-03-05 06:19:47--  https://dbeaver.io/files/dbeaver-ce_latest_amd64.deb
Resolving dbeaver.io (dbeaver.io)... 104.131.190.124
Connecting to dbeaver.io (dbeaver.io)|104.131.190.124|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://dbeaver.io/files/22.3.5/dbeaver-ce_22.3.5_amd64.deb [following]
--2023-03-05 06:19:48--  https://dbeaver.io/files/22.3.5/dbeaver-ce_22.3.5_amd64.deb
Reusing existing connection to dbeaver.io:443.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://download.dbeaver.com/community/22.3.5/dbeaver-ce_22.3.5_amd64.deb [following]
--2023-03-05 06:19:48--  https://download.dbeaver.com/community/22.3.5/dbeaver-ce_22.3.5_amd64.deb
Resolving download.dbeaver.com (download.dbeaver.com)... 205.185.216.42, 205.185.216.10
Connecting to download.dbeaver.com (download.dbeaver.com)|205.185.216.42|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 125960484 (120M) [application/vnd.debian.binary-package]
Saving to: ‘dbeaver-ce_latest_amd64.deb’

dbeaver-ce_latest_amd64.deb        100%[===============================================================>] 120.12M  3.81MB/s    in 25s     

2023-03-05 06:20:14 (4.75 MB/s) - ‘dbeaver-ce_latest_amd64.deb’ saved [125960484/125960484]

잘 다운로드가 되었습니다. 

저기서 이제 설치만 하면 되겠습니다. 

sudo apt install ./dbeaver-ce_latest_amd64.deb
sudo apt install ./dbeaver-ce_latest_amd64.deb 
[sudo] password for talkit: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'dbeaver-ce' instead of './dbeaver-ce_latest_amd64.deb'
The following NEW packages will be installed:
  dbeaver-ce
0 upgraded, 1 newly installed, 0 to remove and 47 not upgraded.
Need to get 0 B/126 MB of archives.
After this operation, 158 MB of additional disk space will be used.
Get:1 /home/talkit/dbeaver-ce_latest_amd64.deb dbeaver-ce amd64 22.3.5 [126 MB]
Selecting previously unselected package dbeaver-ce.
(Reading database ... 157064 files and directories currently installed.)
Preparing to unpack .../dbeaver-ce_latest_amd64.deb ...
Unpacking dbeaver-ce (22.3.5) ...
Setting up dbeaver-ce (22.3.5) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...

설치도 잘 되었습니다.

확인해 보겠습니다. 

dbeaver-ce  가 설치된 프로그램입니다. 

한번 클릭 해보고 오늘은 마치겠습니다. 

윈도우즈 처럼 예쁘게 잘 뜨네요 ^^

처음에 들어가면 조금 다르게 데이터 베이스를 만들까요 부터 몇가지를 물어 보는데 저는 취소 했습니다. 

그리고 캡쳐 하려고 다시 켰더니 저렇게 나오네요 ^^

설치는 여기까지 하고, mattermost 데이터베이스에 접속을 해 보도록 하겠습니다. 

다음 글에서 뵙겠습니다. 

감사합니다. 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. ^^

오늘은 어제에 이어서 날로 먹는 글을 적겠습니다. 

어제는 우분투 리눅스에 비쥬얼 스튜디오 코드를 설치 했다면, 오늘은 RHEL, CentOS, 로키 리눅스에 설치를 해보겠습니다. 

RHEL와 CentOS가 로키 비슷하기 때문에 ^^ 저는 VMWARE 로키 리눅스를 설치해 두었습니다. 거기다가 설치 해보겠습니다. 

다운로드

https://visualstudio.microsoft.com/

 

Visual Studio: IDE and Code Editor for Software Developers and Teams

Visual Studio dev tools & services make app development easy for any developer, on any platform & language. Develop with our code editor or IDE anywhere for free.

visualstudio.microsoft.com

다운로드는 위 주소에서 하시면 됩니다. ^^

여기까지는 지난 글과 동일하네요 ^^ 여기서 갈라집니다. 우분투는 .deb를 설치 했고, 레드햇 계열은 .rpm을 받으시면 됩니다. 

https://code.visualstudio.com/sha/download?build=stable&os=linux-rpm-x64

rpm 관련 다운로드는 위 주소를 사용 합니다. 

cd 원하는디렉토리
wget "https://code.visualstudio.com/sha/download?build=stable&os=linux-rpm-x64" -O visualstudiocode.rpm

우분투와 다르게 .rpm 이라는 것 빼고 절차는 비슷합니다. 

저도 설치를 진행 해 보겠습니다. 

[talkit@localhost ~]$ wget "https://code.visualstudio.com/sha/download?build=stable&os=linux-rpm-x64" -O visualstudiocode.rpm
--2023-03-04 22:00:22--  https://code.visualstudio.com/sha/download?build=stable&os=linux-rpm-x64
Resolving code.visualstudio.com (code.visualstudio.com)... 13.107.237.49, 13.107.238.49, 2620:1ec:4e:1::49, ...
Connecting to code.visualstudio.com (code.visualstudio.com)|13.107.237.49|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://az764295.vo.msecnd.net/stable/92da9481c0904c6adfe372c12da3b7748d74bdcb/code-1.76.0-1677667581.el7.x86_64.rpm [following]
--2023-03-04 22:00:22--  https://az764295.vo.msecnd.net/stable/92da9481c0904c6adfe372c12da3b7748d74bdcb/code-1.76.0-1677667581.el7.x86_64.rpm
Resolving az764295.vo.msecnd.net (az764295.vo.msecnd.net)... 117.18.232.200
Connecting to az764295.vo.msecnd.net (az764295.vo.msecnd.net)|117.18.232.200|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 134497308 (128M) [application/x-redhat-package-manager]
Saving to: ‘visualstudiocode.rpm’

visualstudiocode.rpm                                                   100%[==========================================================================================================================================================================>] 128.27M  11.2MB/s    in 12s     

2023-03-04 22:00:34 (11.1 MB/s) - ‘visualstudiocode.rpm’ saved [134497308/134497308]

rpm도 잘 다운로드 받아 졌습니다. 

이제 설치 해보겠습니다. 

ls
sudo rpm -Uvh visualstudiocode.rpm

명령어는 위와 같습니다.  설치하실때 관리자로 하셨다면 저렇게 하시면 되구요.

설치하실때 관리자로 안하셨으면 T.T su - 명령어를 이용해서 root로 접속을 하시고 진행 하시면 됩니다. 

또는 로그인을 root로 하십시오 ^^

리눅스/Linux su, sudo 슈퍼관리자와 다른 사용자가 되어보자. How to use su,sudo that get root account's power, or change other user's power :: 가야태자의 IT이야기 (tistory.com)

 

리눅스/Linux su, sudo 슈퍼관리자와 다른 사용자가 되어보자. How to use su,sudo that get root account's power,

안녕하세요 가야태자 @talkit 입니다. 오늘은 계속 사용하고 있는 sudo와 아직 보여 드리지 않았지만, su 라는 명령어에 대해서 말씀 드리겠습니다. su는 사용자의 권한을 획득하는 명령어이고, 여기

talkit.tistory.com

root 전환과 관련된 이야기는 위글이 도움이 되실 것 같습니다. 

그럼 저는 sudo로 진행 해 보겠습니다. 

sudo rpm -Uvh visualstudiocode.rpm 
[sudo] talkit의 암호: 
경고: visualstudiocode.rpm: Header V4 RSA/SHA256 Signature, key ID be1229cf: NOKEY
Verifying...                          ################################# [100%]
준비 중...                         ################################# [100%]
Updating / installing...
   1:code-1.76.0-1677667581.el7       ################################# [100%]
[talkit@localhost ~]$

요렇게 잘 설치 가 되었습니다.

여기서도 역시 켜 보고 마치도록 하겠습니다. 

우분투와 마찬가지로 Visual Studio Code가 잘 설치 되어 있습니다. 

Visual Studio Code가 들어옴으로 해서 리눅스가 원래도 훌륭한 개발 툴이었지만 ^^ 더 훌륭한 개발 툴이 되었습니다. 

감사합니다. 

 

반응형
반응형

  안녕하세요 가야태자 @talkit 입니다.  

  오늘은 Visual Studio Code를 우분투 리눅스에 설치 해보겠습니다. 

개요 

  원래 마이크로소프트의 빌게이즈 형님과 스티브 발머 형님이 계실 때는 리눅스와 사이가 많이 나빴습니다. 그런데 새로운 대표님은 리눅스하고 너무 친 합니다. ^^ 마이크로소프트 제품이 많이 리눅스로 포팅 되고 있습니다. 그 중에서 개발자용 에디터인 VisualStudioCode도 포팅 되어 있습니다. 

  이러한 비쥬얼 스튜디오 코드를 제 우분투에 설치 해보록 하겠습니다. 제 경험이 다른 분들께 도움이 되시기를 바라면서 한번 설치 해보겟습니다. 

다운로드

  설치하시려면 저하고 항상 하시는 것이 다운로드 입니다. 

Visual Studio: IDE and Code Editor for Software Developers and Teams (microsoft.com)

 

Visual Studio: IDE and Code Editor for Software Developers and Teams

Visual Studio dev tools & services make app development easy for any developer, on any platform & language. Develop with our code editor or IDE anywhere for free.

visualstudio.microsoft.com

위 페이지에서 다운로드를 하시면 됩니다. 

그런데 리눅스용을 다운로드 해야 하므로 윈도우즈에서 접속 하시면 

저기 파란색 버튼을 누르시고,  지금은 우분투에 설치할 예정이어서 ^^ .deb를 선택 하시면 됩니다. 

리눅스에 다시 FTP로 올리셔야 해서 그러지 마시고 다음을 따라 하시면 됩니다. 

혹시나 리눅스에서 firefox 또는 Chrome으로 접속한다면 그냥 저거 누르셔도 됩니다. ^^

일단은 윈도우에서도 한번 누르십시오 ^^

그러면 위와 비슷하게 나올 겁니다. 

저기서 direct download link 보이시죠 저기 위에 마우스 올리고 오른쪽 마우스 누르셔서 링크를 복사하십시오.

https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64

그러면 현재 저는 위와 비슷하게 나옵니다. 

우분투에서 쉘을 하나 여시고 ^^

cd 원하는디렉토리
wget "https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64" -O visualstudiocode.deb

위와 같이 치시면 파일이 받아 집니다. 

저도 해보겠습니다. 

wget wget "https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64" -O visualstudiocode.deb
--2023-03-04 21:45:43--  http://wget/
Resolving wget (wget)... failed: Temporary failure in name resolution.
wget: unable to resolve host address ‘wget’
--2023-03-04 21:45:43--  https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64
Resolving code.visualstudio.com (code.visualstudio.com)... 13.107.238.49, 13.107.237.49, 2620:1ec:4e:1::49, ...
Connecting to code.visualstudio.com (code.visualstudio.com)|13.107.238.49|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://az764295.vo.msecnd.net/stable/92da9481c0904c6adfe372c12da3b7748d74bdcb/code_1.76.0-1677667493_amd64.deb [following]
--2023-03-04 21:45:44--  https://az764295.vo.msecnd.net/stable/92da9481c0904c6adfe372c12da3b7748d74bdcb/code_1.76.0-1677667493_amd64.deb
Resolving az764295.vo.msecnd.net (az764295.vo.msecnd.net)... 117.18.232.200
Connecting to az764295.vo.msecnd.net (az764295.vo.msecnd.net)|117.18.232.200|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 94825848 (90M) [application/octet-stream]
Saving to: ‘visualstudiocode.deb’

visualstudiocode.deb                                  36%[========================================>                                                                           ]  32.68M  10.9MB/s    eta 5svisualstudiocode.deb                               100%[===============================================================================================================>]  90.43M  11.2MB/s    in 8.2s    

2023-03-04 21:45:52 (11.1 MB/s) - ‘visualstudiocode.deb’ saved [94825848/94825848]

FINISHED --2023-03-04 21:45:52--
Total wall clock time: 8.8s
Downloaded: 1 files, 90M in 8.2s (11.1 MB/s)

저는 잘 받아 졌습니다. 

그러면 설치를 해보겠습니다. 

ls
sudo apt install ./visualstudiocode.deb

ls를 쳐서 다운로드한 파일이 잇는지 확인 하시고 ^^

apt install을 이용해서 설치 합니다.  파일 설치할때는 ./를 무조건 넣어야 하나 봅니다. 

sudo apt install ./visualstudiocode.deb
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'code' instead of './visualstudiocode.deb'
The following NEW packages will be installed:
  code
0 upgraded, 1 newly installed, 0 to remove and 27 not upgraded.
Need to get 0 B/94.8 MB of archives.
After this operation, 394 MB of additional disk space will be used.
Get:1 /home/talkit/visualstudiocode.deb code amd64 1.76.0-1677667493 [94.8 MB]
Selecting previously unselected package code.
(Reading database ... 167921 files and directories currently installed.)
Preparing to unpack .../talkit/visualstudiocode.deb ...
Unpacking code (1.76.0-1677667493) ...
Setting up code (1.76.0-1677667493) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for shared-mime-info (1.15-1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...

저는 설치가 잘 되었습니다. 

제 우분투에 설치 된 프로그램들을 보면 제일 밑에 보이시죠 Visual Studio Code 가 잘 설치 되었습니다. 

실행 해보고 오늘글은 마치도록 하겠습니다. 

오 윈도우즈와 동일하게 비쥬얼스튜디오 코드가 잘 실행 됩니다. 

감사합니다. 

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

리눅스/Linux 로키리눅스 설치/How to Install RockyLinux(2) 알에치이엘 / 센트오에스 대체 로키리눅스 설치 / how to install RockyLinux alternative to RHEL/CentOS :: 가야태자의 IT이야기 (tistory.com)

리눅스/Linux 로키리눅스 설치/How to Install RockyLinux(1) 알에치이엘 / 센트오에스 대체 로키리눅스 다운로드 / how to download RockyLinux alternative to RHEL/CentOS :: 가야태자의 IT이야기 (tistory.com)

첫번째 로그인을 하시면 위와 같이 나옵니다. 

저기서 저는 그대로 한국어 상태로 다음 누릅니다. 

키보든 상태는 위와 같은 상태가 가장 좋은 것 같습니다. 

위치 정보 관련 개인정보는 알아서 판단 하시면 됩니다. 저는 켠 상태로 그냥 지나 갑니다. 

다음 누르십시오.

이렇게 끝이 나면 Rock Linux 시작 버튼을 누르시면 됩니다. 

도움말이 뜨는데요 저기서 날짜 시간 시간대 바꾸기를 클릭해서 변경 하겠습니다.

현재 시간이 어디 시간인지는 모르겠지만, 오후 2시로 나오고 있습니다. ^^

제가 캡쳐 하려고 했는데 이미 매뉴얼에 잘 나와 있습니다.

잘 따라시면 될 것 같습니다. 

저기 설정 모양을 클릭하십시오.

제일 밑에 자세히 보기를 눌러야 나오네요 

저기서 날짜 및 시각을 선택 하십시오.

표준 시간대가 뉴욕으로 되어 있네요 ^^

변경 하겠습니다. 한국 서울로요.

표준 시간대를 클릭하면 지도가 나오는데 저기서 Seoul을 지도나 글자로 선택 하시면 됩니다. 

요렇게 바꾸시면 됩니다. 

닫으시면 되구요.

그래도 저는 시간대가 안맞네요 T.T

인터넷에 연결 되면 고쳐 지게 설정은 해두었습니다.

다음으로 인터넷 연결을 해보겠습니다. 

저는 살짝 유선 연결을 했더니 바로 한국 표준시로 바뀌네요 ^^

아이피 변경 하기라는 주제로 뭔가를 준비 하고 있습니다. 

그래도 그전에 제가 답답하기 때문에 저기 유선 네트워크 설정을 클릭하십시오.

요렇게 나올겁니다.

저기서 연결됨 옆에 있는 톰니바퀴를 누르겠습니다. 

이렇게 나왔구요 저기서 자동으로 연결을 체크 하고 적용을 누르시면 다음 부터 자동으로 연결 됩니다.

아니면 리눅스 껐다가 켜실때마다 누르셔야 합니다. ^^

오늘은 여기까지 하겠습니다.

로키 리눅스에 설치된 그놈이 요즘 우분투만 사용하다 보니 살짝 적응이 안되네요.

이제 부터라도 친해 져야 할 것 같습니다.

감사합니다. 

지금 제 컴에 호스트 윈도우즈 10이구요.

게스트로 우분투 두대와 로키 리눅스 한대가 켜져 있습니다. 

로키 하고도 빨리 진해 져야 할 것 같습니다.

감사합니다. 

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

선행 조건

로키리눅스 설치용 ISO 리눅스/Linux 로키리눅스 설치/How to Install RockyLinux(1) 알에치이엘 / 센트오에스 대체 로키리눅스 다운로드 / how to download RockyLinux alternative to RHEL/CentOS :: 가야태자의 IT이야기 (tistory.com)

위 글을 참고 하시면 됩니다. 

VMWARE 설치 브엠웨어(브이엠웨어,VM웨어)를 설치해보자. How to Install VMWARE on Windows :: 가야태자의 IT이야기 (tistory.com)

위 글을 참조 하시면 됩니다. 

지난 번 글에서 로키리눅스 DVD를 저는 다운로드 해두었습니다. 

VMWARE는 계속 사용하고 있는 것이라 위 글들을 참고 해서 설치 후에 따라하시면 됩니다. 

VM 생성하기

VMWARE 화면에서 Create New Virtual Machine를 선택 합니다. 

비슷하게 마법사가 뜰껍니다. 저기서 우리는 어제 받는 또는 오늘 받으신 ^^ iso 파일을 Installer disc image file(iso)에서 선택 합니다. 

저는 로키 리눅스를 선택 했습니다. 그런데 우분투 처럼 뭔가를 확인해 주지는 않네요 T.T

Next 누르십시오.

로키는 선택지에 없어서 로키가 표방햐는 RHEL 8위 대체제 이므로 RHEL 8을 선택 했습니다. 

Next 누르십시오.

이름을 위와 같이 정하고 Next 클릭 하겠습니다. 

파일 위치는 여유 공간한 한 256GB 정도 있는 곳으로 정해 주십시오. 혹시나 용량이 적으면 좀 더 작게 다음 과정에서 잡으시면 됩니다. 최소 20GB 정도는 준비 해셔야 합니다. 

저는 일단 256 정도를 선택 했습니다. 

Next 누르겠습니다. 

저기 Customize Hardware를 누르시고, 

우분투 할때 했던 것 처럼 CPU 갯수는 8개 램은 16GB 이상 Network Adapter는 Bridged 로 변경 합니다. 

Close 누르시고, Finish 클릭하십시오.

 

로키 리눅스 설치

 

RockyLinux8 VM이 생성 되었구요. 이제 한번 설치 해보겠습니다. 

Play virtual machine를 클릭하십시오.

정말 오랫만에 보는 화면이네요 ^^

59초 뒤에 두번째 화면으로 이동 할 겁니다. ^^

두번째는 미디어를 테스트하고 넘어 가는 것인데 저는 테스트 없이 바로 설치 하겠습니다.

화살표를 한번 눌러서 위와 같이 되게 하시고 엔터 치십시오.

요렇게 뜰겁니다. 여기서 한국어를 선택하십시오.

영어도 좋지만 나중에 한글 처리 관련 문제가 발생할 수 있어서 -> 그때 다시 설치하면 되지만 T.T 귀찮습니다. 

요정도 입니다. ^^

계속 진행을 누르십시오.

다음에 어떻게 설치 할지 묻는데 설치 목적지를 클릭 합니다. 

실제 서버 목적으로 사용하실 거면 사용자 정의를 눌러서 변경 하시는 것이 좋습니다. 그런데 저는 실제 서버가 아니고 그냥 가지고 노려고 하는 것이어서 완료를 누르겠습니다. 

실제 서버로 사용하신다면,

/tmp

/boot

/usr

/home

/opt

위 파티션들은 물리적으로 용량을 나누는 것이 좋습니다.

어느 정도가 좋은지는 다음에 글을 한번 적어 보겠습니다.

오늘은 그냥 리눅스가 나눠주는 자동 파티션으로 만족 하겠습니다. 

보통 우분투는 root계정을 잘 사용안하는데 RHEL 계열은 root를 기본적으로 열어 줍니다.

여기에 비밀번호를 설정 하시면 됩니다. 

root 비밀번호 생성하고 살짝 아래 내리면 사용자 계정도 있습니다.

첫번째 사용자여서 관리자로 설정 합니다. 를 체크 하십시오.

완료 누르시고 빠져 나오면, 설치시작 버튼이 활성화 되어 있을 겁니다. 

설치 시작 누르시면 위와 같이 설치를 진행 합니다. 

설치가 완료 되면 위와 같이 시스템 재시작 이라는 버튼이 활성화 됩니다. 

그러면 위와 같이 부팅을 시작 합니다. 

너무 빨리 지나가서 로키 로고를 몯 찍었네요 ^^

라이센스 정보 누르셔서 

약관에 동의합니다 체크 하시고 완료 하십시오.

활성화 된 설정 완료 버튼을 클릭 합니다. 

이제 로키 리눅스 설치는 완료 되었습니다. 

다음 글에서는 로그인 후에 조금 더 해야 할일을 알아 보겠습니다. 

감사합니다. 

반응형
반응형

리눅스/Linux RHEL(Redhat Enterprise Linux), CentOS(Communiy Enterprise OS) 대체 OS 로키리눅스(RockyLinux) :: 가야태자의 IT이야기 (tistory.com)

 

리눅스/Linux RHEL(Redhat Enterprise Linux), CentOS(Communiy Enterprise OS) 대체 OS 로키리눅스(RockyLinux)

안녕하세요 가야태자 @talkit 입니다. 요즘 저는 Ubuntu 리눅스를 주로 사용해서 이야기를 하고 글을 적고 있습니다. 하지만, 제가 가장 많이 접하고, 사용했던 리눅스는 빨간모자 즉, RedHat 계열의

talkit.tistory.com

안녕하세요 가야태자 @takit 입니다. 

로키 리눅스를 설치 해볼 계획입니다. 

그래서 로키 리눅스  ISO를 다운로드 해보겠습니다. 

Download Rocky | Rocky Linux

 

Download Rocky | Rocky Linux

Rocky Linux is an open enterprise Operating System designed to be 100% bug-for-bug compatible with Enterprise Linux.

rockylinux.org

오늘 내용은 간단 합니다. ^^

위 사이트에 접속해서 어떤 아이를 받을 것인지를 결정 하면 됩니다. ^^

저희는 주로 CentOS 7. 대를 사용했었습니다. 

그런데 7.대가 조금 있으면 EOL이 되어서 EOL이 상대적으로 긴 8.대를 받도록 하겠습니다. ^^

저는 DVD를 선호 합니다. ^^

그래서 DVD를 받을 것입니다. 

하지만, 여러분은 Minmal 이던 DVD든 편하신대로 받으시면 됩니다. 

그리고, 일반적인 PC라면 ^^ x86_64를 받으시면 되구요.

모바일 기기의 경우 또는 ARM으로 구성된 PC의 경우 두번째 줄에서 받으시면 됩니다. 

미러를 통하지 않았는데도 37분 정도 준수하게 다운로드 되고 있습니다. 

다운로드가 완료 되면 다음 글에서 실제로 VMWare에 설치해보겠습니다. 

저는 일단 DVD 이미지가 잘 다운로드 되었습니다. 

다음 글에서 VMWARE에 로키 리눅스를 설치 해보겠습니다.

감사합니다. 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

컴퓨터 또는 서버를 켜시려면, 물리적으로 컴퓨터 앞에 있는 전원을 누르시면 됩니다. 

종료 하고 싶을 때도 마찬가지 입니다. 

윈도우에서는 시작 버튼 누르시고 종료를 찾아서 클릭하시면 물리 버튼을 클릭하지 않아도 컴퓨터를 꺼 줍니다. 

마찬가지로 리눅스도 X 윈도우를 사용하신다면 종료 버튼을 누르시면 꺼집니다. 

저기 Power Off 버튼을 누르시면 파워 Off 로그아웃 리스타트 등을 묻고 종료 과정을 진행해 줍니다. 

하지만, X가 없다면 그리고, 원격지에서 재 시작할일이 있다면 어떻게 해야할까요?

man shutdown

이라고 치시면 제일 처음 그림과 같이 명령어가 나옵니다. 

sudo shutdown -h now

컴퓨터를 바로 꺼달라는 이야기 입니다. 

shutdown -r now

컴퓨터를 재시작 해달라는 이야기 이구요.

shutdown -r 10 min

위와 같이 명령어를 주면 10분 뒤에 재시작해달라는 이야기 입니다. 

talkit@ubuntu:~$ sudo shutdown -h 10 min
Shutdown scheduled for Sun 2023-02-26 17:33:27 KST, use 'shutdown -c' to cancel.

저기 보시면 10분 뒤에 셧다운 된다고 나오구요. shutdown -c 를 이용해서 취소 할 수 있다고 합니다. 

sudo shutdown -c

저는 취소를 했습니다. ^^

root 계정으로 수행 하신다면 sudo를 빼셔도 됩니다. 

우분투에서는 일반 계정으로도 되는 것 같습니다. 

감사합니다.

반응형
반응형

안녕하세요 가야태자 @tlakit 입니다.

오늘은 리눅스/Linux 리눅스 에피티피 명령어(클라이언트) ftp / FTP Command/Client ftp for Linux :: 가야태자의 IT이야기 (tistory.com) 글에 이어서 GUI FTP 클라이언트의 하나인 gFTP 프로그램을 설치해보고 실제로 사용해 보겠습니다.

윈도우 보다 리눅스가 더 설치가 간단 합니다.

우선 위 그림 처럼 Ubuntu 데스크톱에서 오른쪽 마우스 누르고, Open in Terminal을 클릭 하십시오.

요렇게 터미널이 뜰껍니다. 여기서

sudo apt install gftp 

라고 치십시오.

sudo apt install gftp
[sudo] password for talkit: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  gftp-common gftp-gtk gftp-text
The following NEW packages will be installed:
  gftp gftp-common gftp-gtk gftp-text
0 upgraded, 4 newly installed, 0 to remove and 24 not upgraded.
Need to get 648 kB of archives.
After this operation, 3,698 kB of additional disk space will be used.
Do you want to continue? [Y/n] 

저기서 Y를 치십시오.

Get:1 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 gftp-common amd64 2.0.19-6 [408 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 gftp-gtk amd64 2.0.19-6 [157 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 gftp-text amd64 2.0.19-6 [81.2 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 gftp all 2.0.19-6 [1,916 B]
Fetched 648 kB in 3s (216 kB/s)  
Selecting previously unselected package gftp-common.
(Reading database ... 166813 files and directories currently installed.)
Preparing to unpack .../gftp-common_2.0.19-6_amd64.deb ...
Unpacking gftp-common (2.0.19-6) ...
Selecting previously unselected package gftp-gtk.
Preparing to unpack .../gftp-gtk_2.0.19-6_amd64.deb ...
Unpacking gftp-gtk (2.0.19-6) ...
Selecting previously unselected package gftp-text.
Preparing to unpack .../gftp-text_2.0.19-6_amd64.deb ...
Unpacking gftp-text (2.0.19-6) ...
Selecting previously unselected package gftp.
Preparing to unpack .../archives/gftp_2.0.19-6_all.deb ...
Unpacking gftp (2.0.19-6) ...
Setting up gftp-common (2.0.19-6) ...
Setting up gftp-gtk (2.0.19-6) ...
Setting up gftp-text (2.0.19-6) ...
Setting up gftp (2.0.19-6) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...

설치가 잘 되었습니다.

gftp

터미널에서 gftp라고 치시면 됩니다.

저는 이렇게 잘 떴습니다.

그런데 개발 환경을 구축 하면서 계속 저렇게 실행 할 수는 없어서 저 아이콘을 시작 바에 고정 해보겠습니다.

우분투 하단의 위 아이콘을 살짝 클릭 하십시오.

위에서 한번은 실행 하셨기 때문에 위와 같이 나올껍니다.

오른쪽 마우스 클릭 하시면 위와 같이 나옵니다.

저기서 Add to Favorites를 클릭하십시오.

왼쪽에 잘 설치가 되어 있습니다.

이 왕하는 짐에 저는 Terminal도 즐겨 찾기 해두겠습니다.

이제 실제로 로컬에 접속해서 사용해 보겠습니다.

윈도우즈용 ftp와 비슷하게 되어 있습니다. ^^

솔직히 저는 gFTP가 아니고 파일질라 리눅스용을 생각하고 있어서 ^^ 간단하게 다운로드 업로드 몇가지만 테스트 해보겠습니다.

Host에 주소를 User에 아이디를 Pass에 비밀번호를 입력하시고 접속 하시면 됩니다.

gFTP도 다양한 프로토콜을 지원 합니다. ^^

정보를 입력하신 다음에 저 컴퓨터 아이콘을 클릭하거나 엔터 치시면 접속을 진행 합니다.

리모트 쪽에 잘 접속이 되었습니다.

저희가 텍스트 ftp에서 만들었던 여러가지 디렉토리 그리고 윈도우즈에서 만들었던 디렉토리들이 잘 있습니다.

위에 인터페이스 처럼 왼쪽 오른쪽으로 나뉘어서 왼쪽은 로컬이고, 오른쪽은 리모트 입니다.

디렉토리 이동을 lcd 와 cd로 구분하지 않고 아예 GUI로 하니 편합니다. ^^


로컬에서 디렉토리를 만드려면 저기 New Folder...을 클릭하십시오.


제가 방금 test7을 생성했습니다.

잘 만들어 졌습니다.

더블 클릭해서 이동 하십시오.


늘 써먹고 있는 ^^ 이 파일들을 받아 보겠습니다.

gftp에서 Shift로 선택을 하시고 저기 까만 동그라미 안에 있는 화살표를 누르시면 됩니다.

로컬 디렉토리에 잘 다운로드가 되었습니다.

리모트 디렉토리에 다시 test9를 만들어 이아이들을 올려 보겟씁니다.

리모트에서도 동일하게 New Folder을 클릭하시면 새 폴더가 만들어 집니다.

예쁘게 만들어졌구요 저기로 이동 합니다. 로컬과 마찬가지로 더블클릭하시면 됩니다.

이번에는 반대쪽 화살표를 누르시면 ^^

업로드 됩니다.

요렇게 잘 업로드 됩니다. ^^

리눅스를 깔면 기본적으로 접하게 되는 또는 간단하게 설치해서 사용할 수 있는 gFTP에 대해서 알아 봤습니다.

그런데, 이놈이 평판이 좀 안좋습니다. T.T

그래서 저는 다음에 또 설치 해볼 파일질라 리눅스용을 개발용으로 사용할 계획입니다.

감사합니다.

이전 글은 서두에 소개를 했구요.

리눅스/Linux 3가지 리눅스용 에프티피 클라이언트 3 FTP Client List for Linux :: 가야태자의 IT이야기 (tistory.com)

이글의 뿌리는 위 글입니다. 이제야 두가지를 소개 했습니다.

마지막 세번째는 다음글에서 소개 하도록 하겠습니다.

감사합니다.

반응형
반응형

리눅스/Linux 3가지 리눅스용 에프티피 클라이언트 3 FTP Client List for Linux :: 가야태자의 IT이야기 (tistory.com)

안녕하세요 가야태자 @talkit 입니다.

오늘은 작성하고자 하는 긍릉 위 글에 이어서 리눅스용 FTP 클라이언트의 사용법을 이야기 합니다.

거의 모든 리눅스에서 ftp 라고 치시면 일반적으로 설치 되어 있습니다.

일단 명령어는

ftp [접속하고자하는Host] [Port]

위와 같이 사용합니다.

리눅스/Linux 우분투에 FTP 서버를 설치해보자. How to install FTP server on Ubuntu Linux :: 가야태자의 IT이야기 (tistory.com)

이글에서 저는 제 우분투에 FTP 서버를 설치 해 두었습니다. 그래서 저기 접속을 해보겠습니다.

ftp localhost 21

저렇게 치시면 되는데 21은 표준 FTP 포트여서 생략 가능 합니다.

localhost는 안넣으시면, ftp 프로그램이 먼저 켜지고, 명령어를 이용해서 접속하실 수 있습니다.

일단 실행 해보겠습니다.

ftp localhost 21
Connected to localhost.
220 (vsFTPd 3.0.3)
Name (localhost:talkit):
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

위와 같이 실행을 했구요 잘 실행 되었습니다.

Name에 다른 아이디로 접속하시려면, 다른 아이디를 입력하시면 됩니다. talkit 계정으로 접속하시려면 그냥 엔터 치시면 됩니다.

그리고 Password 에는 정확한 패스워드를 입력하시면 됩니다.

ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    2 1000     1000         4096 Dec 25 00:21 Desktop
drwxr-xr-x    2 1000     1000         4096 Dec 25 00:21 Documents
drwxr-xr-x    2 1000     1000         4096 Dec 25 00:21 Downloads
drwxr-xr-x    2 1000     1000         4096 Dec 25 00:21 Music
drwxr-xr-x    2 1000     1000         4096 Dec 25 00:21 Pictures
drwxr-xr-x    2 1000     1000         4096 Dec 25 00:21 Public
drwxr-xr-x    2 1000     1000         4096 Dec 25 00:21 Templates
drwxr-xr-x    2 1000     1000         4096 Dec 25 00:21 Videos
drwxrwxr-x    2 1000     1000         4096 Jan 10 16:00 climates
drwxrwxr-x    2 1000     1000         4096 Jan 03 03:37 emmptydir2
drwxrwxr-x    2 1000     1000         4096 Jan 03 03:37 emmptydir3
drwxrwxr-x    2 1000     1000         4096 Jan 03 03:37 emmptydir4
drwxrwxr-x    2 1000     1000         4096 Jan 03 03:38 emmptydir5
drwxrwxr-x    2 1000     1000         4096 Jan 03 03:28 emptydir
-rw-r--r--    1 1000     1000           35 Dec 30 00:27 ftpclient.txt
-rw-rw-r--    1 1000     1000           35 Dec 30 00:27 ftpserver.txt
-rw-rw-r--    1 1000     1000           35 Jan 03 03:33 ftpserver11.txt
-rw-rw-r--    1 1000     1000           35 Jan 03 03:33 ftpserver12.txt
-rw-rw-r--    1 1000     1000           35 Jan 03 03:33 ftpserver13.txt
-rw-rw-r--    1 1000     1000           35 Jan 03 03:33 ftpserver14.txt
-rw-rw-r--    1 1000     1000           35 Jan 03 03:33 ftpserver15.txt
-rw-rw-r--    1 1000     1000           35 Jan 03 03:27 ftpserver3.txt
-rw-rw-r--    1 1000     1000           35 Jan 03 03:33 ftpserver31.txt
-rw-rw-r--    1 1000     1000           35 Jan 03 03:33 ftpserver32.txt
-rw-rw-r--    1 1000     1000           35 Jan 03 03:33 ftpserver33.txt
-rw-rw-r--    1 1000     1000           35 Jan 03 03:33 ftpserver34.txt
-rw-rw-r--    1 1000     1000           35 Jan 03 03:33 ftpserver35.txt
-rw-rw-r--    1 1000     1000           35 Jan 03 03:27 ftpserver4.txt
-rw-rw-r--    1 1000     1000           35 Jan 03 03:27 ftpserver5.txt
-rw-rw-r--    1 1000     1000     338882654 Dec 21 05:26 mattermost-7.5.2-linux-                                                                                                                                                                                                                                             amd64.tar.gz
-rw-rw-r--    1 1000     1000     38937942 Jan 03 02:01 minio.deb
-rw-rw-r--    1 1000     1000       243162 Nov 09 02:30 naverlogo.png
drwx------    3 1000     1000         4096 Jan 06 06:21 snap
-rw-rw-r--    1 1000     1000       243162 Nov 09 02:30 sp_main_947f65.png
drwxr-xr-x    2 1000     1000         4096 Jan 07 03:22 study
drwxrwxr-x    2 1000     1000         4096 Dec 30 00:37 temp
-rw-rw-r--    1 1000     1000          270 Jan 03 06:17 testtext.txt
drwxrwxr-x    2 1000     1000         4096 Jan 08 06:10 wgettest
226 Directory send OK.

파일 리스트를 확인 하는 명령어인 ls 치시면, 파일 목록을 보실 수 있습니다.

cd : FTP 서버의 디렉토리 이동
lcd : 로컬 컴퓨터의  디렉토리 이동

윈도우즈에서 로컬의 디렉토리를 이동할때는 GUI로 이동 했는데 얘는 GUI가 없으니 명령어로 이동 해야 합니다.

그 명령어가 lcd 입니다.

cd 명령어는 접속 해 있는 서버방의 디렉토리가 이동 됩니다.

디렉토리를 하나 만들어 보겠습니다.

mkdir test
ftp> mkdir test
257 "/home/talkit/test" created

위와 같이 잘 만들어 졌습니다.

cd test
250 Directory successfully changed.

cd test 명령어로 잘 이동을 했구요.

lcd 로컬의 디렉토리를 이동 해보겠습니다.

lcd test

아직 이동한 적이 없기 때문에 로컬에서 test로 이동 했을 겁니다.

ftp> lcd test
Local directory now /home/talkit/test

다시

cd ..
250 Directory successfully changed.

위 디렉토리로 이동 하겠습니다.

이제 다운로드를 한번 받아 보겠습니다.

get 파일명

위 명령어를 이용하시면 로컬에 다운로드 할 수 있습니다.

get ftpclient.txt
local: ftpclient.txt remote: ftpclient.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpclient.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.01 secs (2.8677 kB/s)

잘 다운로드 되었습니다.

! ls

! 명령어를 이용하면 로컬에 있는 명령어를 수행 할 수 있습니다. 저는 주로 로컬 작업을 미리 해두고 들어가서 몰랐는데 ^^

가능하네요 ^^

ftp> !ls
ftpclient.txt

잘 다운로드 받아져 있습니다.

mkdir test3
cd test3

위 명령어로 원격 디렉토리를 이동하고, 파일을 올려 보겟습니다.

ftp> mkdir test3
257 "/home/talkit/test3" created
ftp> cd test3
250 Directory successfully changed.

위와 같이 잘 만들어 지고 이동 되었으면

put 파일명

위 명령어로 파일을 전송 할 수 있습니다.

put ftpclient.txt
 put ftpclient.txt
local: ftpclient.txt remote: ftpclient.txt
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
35 bytes sent in 0.00 secs (510.1446 kB/s)
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000           35 Feb 19 02:33 ftpclient.txt
226 Directory send OK.

실행하면 위와 같이 잘 됩니다. ^^

cd ..
! mkdir test5
lcd test5

로컬에 test5 폴더를 만들고 저기다가 ftp로 시작하는 파일들을 받아 보겠습니다.

그런데 많은 파일을 받아야 해서 명령어가 다릅니다.

mget 파일명일부*
 mget ftp*
mget ftpclient.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpclient.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (255.0723 kB/s)
mget ftpserver.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (160.4680 kB/s)
mget ftpserver11.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver11.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (244.1406 kB/s)
mget ftpserver12.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver12.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (249.4868 kB/s)
mget ftpserver13.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver13.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (234.1074 kB/s)
mget ftpserver14.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver14.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (220.5141 kB/s)
mget ftpserver15.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver15.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (109.9025 kB/s)
mget ftpserver3.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver3.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (205.9017 kB/s)
mget ftpserver31.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver31.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (240.7020 kB/s)
mget ftpserver32.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver32.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (213.6230 kB/s)
mget ftpserver33.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver33.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (217.7050 kB/s)
mget ftpserver34.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver34.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (189.8871 kB/s)
mget ftpserver35.txt? y
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for ftpserver35.txt (35 bytes).
226 Transfer complete.
35 bytes received in 0.00 secs (271.2674 kB/s)
mget ftpserver4.txt?

실제로 위와 같이 명령을 내리면 되는데 y를 계속 눌러 주셔야 합니다.

mput 파일명일부*

명령어는 반대로 여러개의 파일을 한꺼번에 올릴때 사용합니다.

하지만, 간단하게 CLI 밖에 안될때는 저렇게 해도 개발의 특성상 많은 파일을 주고 받아야 해서

ftp는 잠깐 쓰는 것 왜에는 권장하지 않습니다. ^^

참 아까 말씀 드린거를 하나 더 말씀 드리고 마치겠습니다.

ftp  

치시고 엔터 치시면

ftp 프롬프트로 이동하는데 ^^
이때 open 명령어를 이용하시면 접속 하실 수 있습니다.

open localhost 21

동일 합니다.

감사합니다.

다음에는 gFTP를 설치하고 어떻게 FTP파일을 주고 받을지 이야기 해보겠습니다.

반응형
반응형

안녕하세요 @talkit 입니다.

오늘 말씀 드리려고 하는 것은 리눅스에서 사용할수 있는 FTP 클라이언트에 대해서 말씀 드리려고 합니다.

제가 아는 것으로는 세가지 정도 있습니다.

  1. Cli 상의 FTP 클라인트 ftp
  2. Gnome 용 FTP 클라이언트 gFTP
  3. 파일질라/FileZilla 리눅스용

이렇게 세가지 정도가 생각 납니다.

저는 주로 putty 상에서 사용하고 있어서

ftp를 사용 합니다.

요렇게 생겼습니다. 대부분의 리눅스에서 기본적으로 설치 제공 됩니다. 설치가 안되어 있으면 간단하게 설치 하시면 됩니다.

이부분은 설치 부분에서 다루도록 하겠습니다.

리눅스 상에서 가끔 X로 접속한 다음에 사용하던 FTP 클라이언트는 gFTP 입니다.

가끔 필요한 경우가 있습니다.

 

 

이미지 출처 : https://github.com/masneyb/gftp/wiki/User-interface-(GTK)

위와 같이 생겼습니다. 윈도우즈에서 보던 FTP 클라이언트하고 비슷합니다.

마지막으로 FilleZilla 는 윈도우즈용 FileZilla와 동일하게 리눅스용으로 개발된 제품 입니다.

이미지 출처 : FileZilla - Screenshots (filezilla-project.org)

모양은 위와 같이 생겼습니다.

리눅스에 개발 환경을 구축하려하고 합니다.

이때 제일 처음에 알아 보고 있는 내용이 FTP 클라이언트 입니다.

저는 웹 개발자여서 ^^ 서버에 뭔가는 전송하는 프로그램이 필요해서 사용하려고 합니다.

물론, Putty로 접속해서 ftp를 사용해도 되겠지만, 일단 Ubuntu 데스크톱에 개발 환경을 꾸려 보려고 합니다.

ftp는 설치 되어 있어서 사용법에 대해서 알아보도록 하고,

gftp와 FileZilla는 설치 되어 있지 않아서 직접 설치하고 설치 방법과 함께 자세하게 알아 보겠습니다.

감사합니다.

반응형
반응형

안녕하세요 가야태자 @talkit 입니다.

wget은 웹(http,https), FTP를 통해서 파일을 다운로드하게 해주는 고마운 툴입니다.

![[Pasted image 20230108221214.png]]

wget 의 설명을 보려면 리눅스에서

man wget

이라고 치십시오.

그러면 다양한 옵션들이 있습니다. ^^

제가 공부해보려고 하는 내용은 웹에서 다운로드하기 와 ftp에서 다운로드 하기 입니다.

기본 사용법

리눅스 명령어의 기본 사용법은 거의 비슷합니다.

wget [옵션들] 다운로드할 주소

옵션들은 생략이 가능 합니다. ^^

주소는 무조건 있어야 합니다.

web과 ftp는 주소에서 드립니다.

http:// 또는 https:// 로 시작하면 web에서 다운로드하는 것이구요.

ftp:// 에서 다운로드하면 FTP에서 다운로드 하는 것입니다.

web에서 다운로드하기

웹에서 다운로드는 웹 주소만 잘 주시면 됩니다 .^^

일반적으로 제가 프로그램을 다운로드할때 wget을 쓰는 모습을 보셨을 겁니다.

오늘은 네이버의 로고를 한번 다운로드 받아 볼텐데 실제 로고인지는 잘 모르겠습니다. ^^

https://s.pstatic.net/static/www/img/uit/sp_main_947f65.png

오 클릭해보니 맞네요

저 파일을 내려 받아 보겠습니다.

wget https://s.pstatic.net/static/www/img/uit/sp_main_947f65.png

저 명령어를 제가 리눅스에 넣었습니다.

wget https://s.pstatic.net/static/www/img/uit/sp_main_947f65.png
--2023-01-08 05:18:35--  https://s.pstatic.net/static/www/img/uit/sp_main_947f65.png
Resolving s.pstatic.net (s.pstatic.net)... 125.209.254.152, 125.209.254.148, 125.209.254.150, ...
Connecting to s.pstatic.net (s.pstatic.net)|125.209.254.152|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 243162 (237K) [image/png]
Saving to: ‘sp_main_947f65.png’

sp_main_947f65.png                                          100%[========================================================================================================================================>] 237.46K  --.-KB/s    in 0.02s

2023-01-08 05:18:35 (10.2 MB/s) - ‘sp_main_947f65.png’ saved [243162/243162]

이렇게 잘 나오네요 ^^

그런데 웹에 있는 파일명 그대로 다운로드가 됩니다.

이번에는 .png 파일이 정의되어 있어서 잘 다운로드가 되었지만, ^^

가끔

wget -O naverlogo.png  https://s.pstatic.net/static/www/img/uit/sp_main_947f65.png

주소가 저따위로 되어 있으면 ^^ 파일명이 거의 저모습 그대로 저장 됩니다.

그래서,

web에서는 -O 옵션이 중요할 것같습니다.

talkit@ubuntu:~$ ls
Desktop    emmptydir2  emmptydir5     ftpserver11.txt  ftpserver14.txt  ftpserver32.txt  ftpserver35.txt  ftpserver5.txt                       minio.deb  Public              study      testtext.txt
Documents  emmptydir3  emptydir       ftpserver12.txt  ftpserver15.txt  ftpserver33.txt  ftpserver3.txt   ftpserver.txt                        Music      snap                temp       Videos
Downloads  emmptydir4  ftpclient.txt  ftpserver13.txt  ftpserver31.txt  ftpserver34.txt  ftpserver4.txt   mattermost-7.5.2-linux-amd64.tar.gz  Pictures   sp_main_947f65.png  Templates

저기 파일이 다운로드 되어 있습니다.

그런데, naverlogo.png로 변경하려면 어떻게 해야 할까요?

http://도메인주소/abcdefgh.do?dkjalsf=askldfjalksdj&aksdfja=ajskldfja
wget -O naverlogo.png https://s.pstatic.net/static/www/img/uit/sp_main_947f65.png
--2023-01-08 05:22:34--  https://s.pstatic.net/static/www/img/uit/sp_main_947f65.png
Resolving s.pstatic.net (s.pstatic.net)... 125.209.254.152, 125.209.254.148, 125.209.254.150, ...
Connecting to s.pstatic.net (s.pstatic.net)|125.209.254.152|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 243162 (237K) [image/png]
Saving to: ‘naverlogo.png’

naverlogo.png                                               100%[========================================================================================================================================>] 237.46K  --.-KB/s    in 0.02s

2023-01-08 05:22:34 (10.7 MB/s) - ‘naverlogo.png’ saved [243162/243162]

talkit@ubuntu:~$ ls
Desktop    emmptydir2  emmptydir5     ftpserver11.txt  ftpserver14.txt  ftpserver32.txt  ftpserver35.txt  ftpserver5.txt                       minio.deb      Pictures  sp_main_947f65.png  Templates
Documents  emmptydir3  emptydir       ftpserver12.txt  ftpserver15.txt  ftpserver33.txt  ftpserver3.txt   ftpserver.txt                        Music          Public    study               testtext.txt
Downloads  emmptydir4  ftpclient.txt  ftpserver13.txt  ftpserver31.txt  ftpserver34.txt  ftpserver4.txt   mattermost-7.5.2-linux-amd64.tar.gz  naverlogo.png  snap      temp                Videos

잘 저장이 되었습니다.

저기 naverlog.png 보이시지요 ^^

다운로드 받으실 주소를 복사하시고

wget 명령어 뒤에다가 넣어 주시면 되고

-O 옵션을 기억 하시면 될 것 같습니다.

개별 파일의 경우 -O 옵션은 FTP에서도 가능 합니다.

ftp에서 다운로드하기

FTP options:
       --ftp-user=USER             set ftp user to USER
       --ftp-password=PASS         set ftp password to PASS
       --no-remove-listing         don't remove '.listing' files
       --no-glob                   turn off FTP file name globbing
       --no-passive-ftp            disable the "passive" transfer mode
       --preserve-permissions      preserve remote file permissions
       --retr-symlinks             when recursing, get linked-to files (not dir)

FTP 관련 옵션위와 같습니다. ^^
저기서 3가지 정도를 사용해야 합니다.

--ftp-user= ftp 사용자아이디
--ftp-password= ftp 사용자패스워드
--no-passive-ftp

위세가지 옵션을 이용해서 한번 다운로드 해보겠습니다

wget --ftp-user=사용자아이디 --ftp-password=비밀번호 [--no-passive-ftp] 다운로드주소

FTP도 동일하게 다운로드여서 무조건 다운로드 주소는 있어야 합니다.

한번 제가 지난 번에 만들어 둔 ftp로 다운을 받아 보겠습니다.

내부 FTP여서 ^^

wget --ftp-user=talkit --ftp-password=비밀번호 ftp://192.168.0.27:21/ftp*
wget --ftp-user=talkit --ftp-password=비빌번호 ftp://192.168.0.27:21/ftp*
--2023-01-08 06:10:19--  ftp://192.168.0.27/ftp*
           => ‘.listing’
Connecting to 192.168.0.27:21... connected.
Logging in as talkit ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD not needed.
==> PASV ... done.    ==> LIST ... done.

.listing                                                        [ <=>                                                                                                                                     ]   3.36K  --.-KB/s    in 0s

2023-01-08 06:10:20 (24.1 MB/s) - ‘.listing’ saved [3445]

Removed ‘.listing’.
--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpclient.txt
           => ‘ftpclient.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpclient.txt ... done.
Length: 35

ftpclient.txt                                               100%[========================================================================================================================================>]      35  --.-KB/s    in 0.01s

2023-01-08 06:10:20 (2.91 KB/s) - ‘ftpclient.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver.txt
           => ‘ftpserver.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver.txt ... done.
Length: 35

ftpserver.txt                                               100%[========================================================================================================================================>]      35  --.-KB/s    in 0.02s

2023-01-08 06:10:20 (2.20 KB/s) - ‘ftpserver.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver11.txt
           => ‘ftpserver11.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver11.txt ... done.
Length: 35

ftpserver11.txt                                             100%[========================================================================================================================================>]      35  --.-KB/s    in 0.006s

2023-01-08 06:10:20 (5.26 KB/s) - ‘ftpserver11.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver12.txt
           => ‘ftpserver12.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver12.txt ... done.
Length: 35

ftpserver12.txt                                             100%[========================================================================================================================================>]      35  --.-KB/s    in 0.007s

2023-01-08 06:10:20 (5.07 KB/s) - ‘ftpserver12.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver13.txt
           => ‘ftpserver13.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver13.txt ... done.
Length: 35

ftpserver13.txt                                             100%[========================================================================================================================================>]      35  --.-KB/s    in 0.006s

2023-01-08 06:10:20 (5.35 KB/s) - ‘ftpserver13.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver14.txt
           => ‘ftpserver14.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver14.txt ... done.
Length: 35

ftpserver14.txt                                             100%[========================================================================================================================================>]      35  --.-KB/s    in 0.009s

2023-01-08 06:10:20 (3.61 KB/s) - ‘ftpserver14.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver15.txt
           => ‘ftpserver15.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver15.txt ... done.
Length: 35

ftpserver15.txt                                             100%[========================================================================================================================================>]      35  --.-KB/s    in 0s

2023-01-08 06:10:20 (97.6 KB/s) - ‘ftpserver15.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver3.txt
           => ‘ftpserver3.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver3.txt ... done.
Length: 35

ftpserver3.txt                                              100%[========================================================================================================================================>]      35  --.-KB/s    in 0s

2023-01-08 06:10:20 (72.0 KB/s) - ‘ftpserver3.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver31.txt
           => ‘ftpserver31.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver31.txt ... done.
Length: 35

ftpserver31.txt                                             100%[========================================================================================================================================>]      35  --.-KB/s    in 0.002s

2023-01-08 06:10:20 (20.0 KB/s) - ‘ftpserver31.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver32.txt
           => ‘ftpserver32.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver32.txt ... done.
Length: 35

ftpserver32.txt                                             100%[========================================================================================================================================>]      35  --.-KB/s    in 0s

2023-01-08 06:10:20 (139 KB/s) - ‘ftpserver32.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver33.txt
           => ‘ftpserver33.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver33.txt ... done.
Length: 35

ftpserver33.txt                                             100%[========================================================================================================================================>]      35  --.-KB/s    in 0.002s

2023-01-08 06:10:20 (14.7 KB/s) - ‘ftpserver33.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver34.txt
           => ‘ftpserver34.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver34.txt ... done.
Length: 35

ftpserver34.txt                                             100%[========================================================================================================================================>]      35  --.-KB/s    in 0.002s

2023-01-08 06:10:20 (18.7 KB/s) - ‘ftpserver34.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver35.txt
           => ‘ftpserver35.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver35.txt ... done.
Length: 35

ftpserver35.txt                                             100%[========================================================================================================================================>]      35  --.-KB/s    in 0s

2023-01-08 06:10:20 (127 KB/s) - ‘ftpserver35.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver4.txt
           => ‘ftpserver4.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver4.txt ... done.
Length: 35

ftpserver4.txt                                              100%[========================================================================================================================================>]      35  --.-KB/s    in 0s

2023-01-08 06:10:20 (147 KB/s) - ‘ftpserver4.txt’ saved [35]

--2023-01-08 06:10:20--  ftp://192.168.0.27/ftpserver5.txt
           => ‘ftpserver5.txt’
==> CWD not required.
==> PASV ... done.    ==> RETR ftpserver5.txt ... done.
Length: 35

ftpserver5.txt                                              100%[========================================================================================================================================>]      35  --.-KB/s    in 0s

위와 같이 사용 가능 합니다. ^^

ftp로 시작하는 아이들이 잘 다운로드 되었습니다.

 ls
ftpclient.txt    ftpserver12.txt  ftpserver14.txt  ftpserver31.txt  ftpserver33.txt  ftpserver35.txt  ftpserver4.txt  ftpserver.txt
ftpserver11.txt  ftpserver13.txt  ftpserver15.txt  ftpserver32.txt  ftpserver34.txt  ftpserver3.txt   ftpserver5.txt

유용한 옵션 --mirror

홈페이지나 오픈소스를 하다보면 백업을 해야할 경우가 있습니다.

wget --mirror --ftp-user=talkit --ftp-password=비빌번호 ftp://192.168.0.27:21/*

talkit 계정을 미러링 해보겠습니다. ^^

 cd 192.168.0.27/
talkt2@ubuntu:~/wgettest/192.168.0.27$ ls
Desktop    emmptydir2  emmptydir5     ftpserver11.txt  ftpserver14.txt  ftpserver32.txt  ftpserver35.txt  ftpserver5.txt                       minio.deb      Pictures  sp_main_947f65.png  Templates     wgettest
Documents  emmptydir3  emptydir       ftpserver12.txt  ftpserver15.txt  ftpserver33.txt  ftpserver3.txt   ftpserver.txt                        Music          Public    study               testtext.txt
Downloads  emmptydir4  ftpclient.txt  ftpserver13.txt  ftpserver31.txt  ftpserver34.txt  ftpserver4.txt   mattermost-7.5.2-linux-amd64.tar.gz  naverlogo.png  snap      temp                Videos

미러링은 잘 되었습니다.

결론

wget 은 정말 고마운 툴입니다.

요즘은 또 유행하고 있는 것이 curl 이 유행을 하고 있어서 한번 글을 언젠가 적어 보겠습니다.

감샇합니다.

#linux #command #wget

반응형
반응형


안녕하세요 가야태자 @talkit 입니다.

오늘은 계속 사용하고 있는 sudo와 아직 보여 드리지 않았지만, su 라는 명령어에 대해서 말씀 드리겠습니다.

su는 사용자의 권한을 획득하는 명령어이고, 여기에 root 권한도 포함 됩니다.

sudo 해당 사용자 처럼 명령을 수행해 줍니다.

차이점은 한두가지 일을 그냥 진행할때는 sudo가 좋습니다.

계속 해당 사용자의 일을 해야 한다면, 해당 사용자로 로그인 하거나 su를 이용해서 아예 그 계정 권한을 획득해서 작업을 하는 것이 좋다고 생각합니다.

su 사용법

일단 간단하게 su에 대해서 알아 보겠씁니다.

su [옵션들] [-] [사용자명] [아규먼트들]

저도 계속 사용하던 것만 사용해서 알려 드리겠습니다.

옵션은 많은데 -s 정도가 필요할 것 같습니다. 나머지는 별로 저기 - 가 중요 합니다.

"-" 는 음 md에서 -가 뭔가 있어서 ^^ 큰 따옴표로 묶었습니다.

"-"는 해당 사용자의 권한을 완전히 내것으로 입니다.
"-"를 빼면, 환경변수는 내 것을 사용하고 계정만 변경 됩니다.

조금 있다가 차이를 보여 드리겠습니다.

우분투에서 root가 될 수 있는지 한번 보겠습니다.

우분투에서 root 계정의 비밀번호가 없어서 접근이 안되네요 그래서 아래 명령어를 내려 줬습니다.

sudo passwd root

이렇게요 root의 비밀번호를 셋팅 하겠다는 거지요

sudo passwd root
[sudo] password for talkit:
New password:
Retype new password:
passwd: password updated successfully

이렇게 변경해 주었습니다. ^^

그래서 이제 제 우분투에서 root 권한을 획득할 수 있습니다. ^^

실제로 root 권한을 획득해 보겠습니다.

talkit@ubuntu:~$ su -
Password:
root@ubuntu:~#

혹시 프롬프트의 차이가 느껴 지시나요?

$ 와 # 입니다.

$는 일반 사용자 계정을 표시합니다.

"#"은 슈퍼 사용자 계정을 표시합니다.

그래서 계정 끝이 # 이면 조심하셔야 합니다.

모든 곳에 영향을 미치니까요

su - 없이 해보겠습니다.


root@ubuntu:~# echo $HOME
/root
root@ubuntu:~# exit
logout
talkit@ubuntu:~$ echo $HOME
/home/talkit
talkit@ubuntu:~$ su
Password:
root@ubuntu:/home/talkit# echo $HOME
/root
talkit@ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
talkit@ubuntu:~$ su -
Password:
su: Authentication failure
talkit@ubuntu:~$ su -
Password:
root@ubuntu:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
root@ubuntu:~#

환경 변수 차이가 거의 없습니다. T.T

       -, -l, --login
              Start  the shell as a login shell with an environment similar to
              a real login:

                 o      clears all the environment variables except  TERM  and
                        variables specified by --whitelist-environment

                 o      initializes  the  environment  variables  HOME, SHELL,
                        USER, LOGNAME, and PATH

                 o      changes to the target user's home directory

                 o      sets argv[0] of the shell to '-' in order to make  the
                        shell a login shell

그래서

"-" 옵션을 제가 잘 못 이해 하고 있는 줄 알고 다시 봤는데 비슷하게 이해는 하고 있네요 .

환경 변수중의 일부만 안변하고 변하는 것이고

"-" 옵션을 주면, 실제로 그 계정으로 login한걸로 되네요 ^^

일단 그렇다고 합니다.

root user로 오래 작업을 해야 할 경우 su - 를 이용해서 작업하시는 것이 훨씬 효율적입니다. - 없이 하면 뭔가 권한이 조금 부족한 느낌입니다. ^^

그리고 su - 뒤에 사용자를 붙이면 해당 사용자로 변경 됩니다.

su - 는 실제로 su - root 가 생략 되어 있다고 보시면 됩니다.

비밀번호 없이 해당계정으로 접근 하시려면, root 계정으로 접근 하신 다음에 비밀번호 없는 계정으로 접근 하시면 됩니다.

오 방금 옵시디안에 vim 옵션을 활성화 했는데 좋습니다. ^^ 기보드 화살표 키로 안가도 될네요 ㅎㅎㅎ

실제로 한번 예저를 보여 드리겠습니다.


su - mattermost
Password:
su: Authentication failure
talkit@ubuntu:~$ su - root
Password:
root@ubuntu:~# su - mattermost
su: warning: cannot change directory to /home/mattermost: No such file or directory
$

위에서 보시면, mattermost 계정으로 접근이 안됩니다. 왜냐면 아까 root 처럼 비밀번호가 없습니다. ^^

하지만, root 계정으로 su 한 다음에 mattermost 계정으로 su 하면 해당 계정으로 접근은 가능 합니다.

계정 홈도 지정해주지 않아서 ^^

저렇게 되네요

마지막으로 su -s -

를 알리고 su 관련 내용은 접고 다음에 있는 sudo를 이야기 하겠습니다.

su -s /usr/bin/csh -

위 명령어를 내렸는데 설치가 안되어 있습니다. ^^

그래서 또 설치 합니다.

sudo apt install csh

csh 은 가끔씩 쓸일이 있어서 설치 해 놓으면 좋을 것 같습니다.

talkit@ubuntu:~$ su -s /bin/csh -
Password:
#

이렇게 하시면 계정을 변경할때 기본 쉘을 변경할 수 있습니다.

여기까지가 su에 관련된 내용입니다.

원하는 사용자의 권한 획득 이제 하시겠죠.

sudo 사용법

sudo는 원하는 사용자 권한으로 일하기라고 생각하시면 됩니다.

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

우선 sudo를 설명 드리려면 sudoers 라는 파일을 알아야 합니다. ^^

%sudo ALL=(ALL:ALL) ALL

위 줄이 중요합니다.

sudo는 저 그룹에 속한 사용자만 가능 합니다.

제 컴퓨터에서 talkit 계정은

vi /etc/group

해서 보시면

sudo:x:27:talkit

sudo 그룹에 포함되어 있습니다

자 그러면, talkit2 계정을 만들겠습니다.

adduser talkit2

일부러 그룹을 안주고 만들었습니다.

저 talkit2에 비밀번호를 주겠습니다.

sudo passwd talkit2

비밀번호를 줬구요

talkit2 계정에 su로 접근 해서 sudo를 한번 해보겠습니다.

첫번째는 실패 합니다.

다시 빠저 나와서 talkit 계정으로

talkit2를 sudo 그룹에 넣습니다.

sudo usermod -aG sudo talkit2

위와 같이 하면 성공합니다.

talkit@ubuntu:~$ su - talkit2
su: user talkit2 does not exist
talkit@ubuntu:~$ adduser talkt2
adduser: Only root may add a user or group to the system.
talkit@ubuntu:~$ sudo adduser talkt2
Adding user `talkt2' ...
Adding new group `talkt2' (1001) ...
Adding new user `talkt2' (1001) with group `talkt2' ...
Creating home directory `/home/talkt2' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for talkt2
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y
talkit@ubuntu:~$ su - talkit
Password:
talkit@ubuntu:~$ su - talkit2
su: user talkit2 does not exist
talkit@ubuntu:~$ su - talkt2
Password:
su: Authentication failure
talkit@ubuntu:~$ su - talkt2
Password:
su: Authentication failure
talkit@ubuntu:~$ su - talkt2
Password:
talkt2@ubuntu:~$ sudo vi /etc/sudoers
[sudo] password for talkt2:
talkt2 is not in the sudoers file.  This incident will be reported.
talkt2@ubuntu:~$ exit
logout
talkit@ubuntu:~$ sudo usermod -aG sudo talkt2
talkit@ubuntu:~$ su - talkt2
Password:
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

talkt2@ubuntu:~$ sudo vi /etc/sudoers
[sudo] password for talkt2:
talkt2@ubuntu:~$ sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.

실제로 해보면 위와 같이 되는데 ^^

제가 실수로 talkt2 으로 계정을 만들었네요. 저거 빼고는 차가 없이 잘 테스트가 되었습니다.

일단 실습을 먼저 했구요.

이 실습의 목적은 사용자를 어떻게 sudo 가능하도록 하느냐 입니다. ^^

이제 실제로 sudo 사용법은 어렵지 않습니다. ^^

sudo [옵션] 원하는명령어 [원하는명령어의 옵션들]

옵션들은 생략이 가능하고 sudo 이다 보니 ^^ 무조건 명령어는 하나 넣으셔야 합니다.

옵션 중에는 -u 옵션만 설명을 드리겠습니다.

다른 설명을 원하시면 ^^

man sudo

설명이 잘 나와 있습니다.

sudo cat /etc/sudoers
 sudo cat /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#

talkit 계정으로 이명령어를 실행하면 sudo 사용자니까 잘 됩니다.

-s 옵션을 설명을 드리면 ^^

sudo -u mattermost cat /etc/sudoers

이렇게 명령을 내려 보겠습니다.

sudo -u mattermost cat /etc/sudoers
cat: /etc/sudoers: Permission denied

당연히 권한이 없는 사용자로 했으니 권한이 없답니다.

결론

음 결론이라기 보다는 권고에 가까 울 것 같습니다.

되도록이면 보안상 sudo를 사용하십시오.

불편하시더라도 ^^

정말로 root 사용자로 작업을 해야 하면 그때

su - 를 이용해서 권한을 획득한 후에 사용하십시오.

su/sudo를 잘 사용해서 root 권한의 업무를 잘 진행하시기 바랍니다.

감사합니다.

#linux #command

반응형
반응형

안녕하세요 가야태자 @talkit 입니다.

오늘은 데비안/우분투 리눅스의 설치 관리자인 apt에 대해서 알아 보겠습니다.

우선 리눅스의 설치 관리자는 제가 아는 것으로 ^^

rpm이라는 프로그램

yum이라는 프로그램

그리고, 지금 설명하려고 하는 apt라는 프로그램이 있습니다.

rpm은 레드햇 리눅스에서 만든 패키지 관리 프로그램 이구요.

yum이라는 프로그램은 역시 레드햇 리눅스에서 만든 프로그램인데, rpm 보다는 스스로 호환성/의존성 문제를 해결해 줍니다.

그리고 apt는 호환성/의존성 문제가 해결된 데비안/우분투 리눅스의 설치 관리자 입니다.

![[Pasted image 20230106232301.png]]

apt의 GUI 버전을 보여 드리겨고 했는데 ^^ 위와 같이 카달로그를 받는데 시간이 걸리네요

저거 끝나면 다시 캡쳐를 ^^

지금 제가 하고 있는 것은 CLI 입니다. Command LIne Interface ^^

apt 기본 사용법

 sudo apt 명령어 [패키지명|검색어]

위와 같습니다.

오늘 설명할 명령어는 아래와 같습니다.

update
upgrade
install
reinstall
remove
search
list
show

위 명령어들을 알아 보겠습니다.

대부분 우분투에 뭔가를 까실때 저 명령어들로 해결이 가능 합니다.

우선 update는 최신 버전의 패키지 서버들과 패키지의 버전 업데이트를 목록을 알려 줍니다.

update 명령어

sudo apt update

우분투에서 root를 활성화 시키지 않는 이상 sudo를 사용해야 합니다.

그래서 위와 같이 사용합니다.

한번 해보겠습니다.

![[Pasted image 20230106232754.png]]

아까 하고 있는 작업 끝나서 보입니다. ^^

위와 같이 GUI형태로 프로그램을 설치하고 관리 할 수 있습니다.

다시 putty로 돌아 와서.

sudo apt update 명령어를 내려 보십시오.

sudo apt update
[sudo] password for talkit:
Hit:1 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:2 http://us.archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://us.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu focal-backports InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
9 packages can be upgraded. Run 'apt list --upgradable' to see them.

위와 같이 나옵니다. 저기 시키는 대로 한번 쳐 보겠습니다.

list 명령어

sudo apt list --upgradable
firefox-locale-en/focal-updates,focal-security 108.0.1+build1-0ubuntu0.20.04.1 amd64 [upgradable from: 108.0+build2-0ubuntu0.20.04.1]
firefox/focal-updates,focal-security 108.0.1+build1-0ubuntu0.20.04.1 amd64 [upgradable from: 108.0+build2-0ubuntu0.20.04.1]
libcurl3-gnutls/focal-updates,focal-security 7.68.0-1ubuntu2.15 amd64 [upgradable from: 7.68.0-1ubuntu2.14]
linux-generic-hwe-20.04/focal-updates,focal-security 5.15.0.57.63~20.04.23 amd64 [upgradable from: 5.15.0.56.62~20.04.22]
linux-headers-generic-hwe-20.04/focal-updates,focal-security 5.15.0.57.63~20.04.23 amd64 [upgradable from: 5.15.0.56.62~20.04.22]
linux-image-generic-hwe-20.04/focal-updates,focal-security 5.15.0.57.63~20.04.23 amd64 [upgradable from: 5.15.0.56.62~20.04.22]
python3-update-manager/focal-updates,focal-updates 1:20.04.10.11 all [upgradable from: 1:20.04.10.10]
update-manager-core/focal-updates,focal-updates 1:20.04.10.11 all [upgradable from: 1:20.04.10.10]
update-manager/focal-updates,focal-updates 1:20.04.10.11 all [upgradable from: 1:20.04.10.10]

저는 위와 같이나옵니다.

몇가지가 update 되어 있네요.

list는 보시는 바와 같이 패키지 목록을 보여 줍니다.

이왕 list로 왔으니

그냥 list를 해보겠습니다.

sudo apt list | more

조만간 more 와 less에 관해서 작성 해야겠네요 ^^

sudo apt list | more

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Listing...
0ad-data-common/focal,focal 0.0.23.1-1 all
0ad-data/focal,focal 0.0.23.1-1 all
0ad/focal 0.0.23.1-4ubuntu3 amd64
0install-core/focal 2.15.1-1 amd64
0install/focal 2.15.1-1 amd64
0xffff/focal 0.8-1 amd64
2048-qt/focal 0.1.6-2build1 amd64
2ping/focal,focal 4.3-1 all
2to3/focal,focal 3.8.2-0ubuntu2 all
2vcard/focal,focal 0.6-2 all
3270-common/focal 3.6ga4-3build1 amd64
389-ds-base-dev/focal 1.4.3.6-2 amd64
389-ds-base-libs/focal 1.4.3.6-2 amd64
389-ds-base/focal 1.4.3.6-2 amd64
389-ds/focal,focal 1.4.3.6-2 all
3dchess/focal 0.8.1-20 amd64
3depict/focal 0.0.22-1.2build1 amd64
3dldf-doc/focal,focal 2.0.3+ndfsg-4 all
4g8/focal 1.0-3.2 amd64
4pane/focal 6.0-1build1 amd64
4store/focal 1.1.6+20151109-2build2 amd64
4ti2-doc/focal,focal 1.6.9+ds-2build1 all
4ti2/focal 1.6.9+ds-2build1 amd64
64tass/focal 1.54.1900-1 amd64
6tunnel/focal 1:0.13-1 amd64
7kaa-data/focal,focal 2.15.2+dfsg-2build1 all
7kaa/focal 2.15.2+dfsg-2build1 amd64
9base/focal 1:6-7build1 amd64
9menu/focal 1.9-2 amd64
9mount/focal 1.3+hg20170412-1 amd64
9wm/focal 1.4.1-1 amd64
a11y-profile-manager-doc/focal,focal 0.1.11-0ubuntu4 all
a11y-profile-manager-indicator/focal 0.1.11-0ubuntu4 amd64
a11y-profile-manager/focal 0.1.11-0ubuntu4 amd64
a2jmidid/focal 9-2 amd64
a2ps/focal 1:4.14-5 amd64
a56/focal 1.3+dfsg-9 amd64
a7xpg-data/focal-updates,focal-updates 0.11.dfsg1-10build3.1 all
a7xpg/focal-updates 0.11.dfsg1-10build3.1 amd64
aa3d/focal 1.0-8build1 amd64
aac-enc/focal 0.1.6-1 amd64
aajm/focal 0.4-10build1 amd64
aaphoto/focal 0.45-1 amd64
aapt/focal 1:8.1.0+r23-3build2 amd64
abacas/focal,focal 1.3.1-6 all
abcde/focal,focal 2.9.3-1 all
abci/focal 0.0~git20170124.0.f94ae5e-2 amd64
abcm2ps/focal 8.14.6-0.1 amd64
abcmidi/focal 20200122-1 amd64
abe-data/focal,focal 1.1+dfsg-3 all
abe/focal 1.1+dfsg-3 amd64
abgate/focal 1.1.9-2build1 amd64
abi-compliance-checker/focal,focal 2.3-0.2ubuntu1 all
abi-dumper/focal,focal 1.1-1 all
abi-monitor/focal,focal 1.12-2ubuntu1 all
abi-tracker/focal,focal 1.11-1 all
abicheck/focal,focal 1.2-5ubuntu1 all
abigail-doc/focal,focal 1.6-1build1 all
abigail-tools/focal 1.6-1build1 amd64
abisip-find/focal 1.3.0-2 amd64
abiword-common/focal,focal 3.0.2-10 all

위와 같이 설치 되어 있는 캐시되 있는? 설치되고, 설치할 수 있는 모든 패키지들을 보여 주고 있습니다.

sudo apt list --installed

위 명령어를 내리면, 설치 되어 있는 패키지만 찾을 수 있습니다.

지난 번에 제가 설치한 mc 패키지를 한번 찾아 보겠습니다.

sudo apt list --installed | grep mc

위와 같이 하시면 됩니다.

sudo apt list --installed | grep mc

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

fonts-smc-anjalioldlipi/focal,focal,now 7.1.2-1 all [installed,automatic]
fonts-smc-chilanka/focal,focal,now 1.400-1 all [installed,automatic]
fonts-smc-dyuthi/focal,focal,now 3.0.2-1 all [installed,automatic]
fonts-smc-gayathri/focal,focal,now 1.100-1 all [installed,automatic]
fonts-smc-karumbi/focal,focal,now 1.1.2-1 all [installed,automatic]
fonts-smc-keraleeyam/focal,focal,now 3.0.2-1 all [installed,automatic]
fonts-smc-manjari/focal,focal,now 1.710-1 all [installed,automatic]
fonts-smc-meera/focal,focal,now 7.0.3-1 all [installed,automatic]
fonts-smc-rachana/focal,focal,now 7.0.2-1 all [installed,automatic]
fonts-smc-raghumalayalamsans/focal,focal,now 2.2.1-1 all [installed,automatic]
fonts-smc-suruma/focal,focal,now 3.2.3-1 all [installed,automatic]
fonts-smc-uroob/focal,focal,now 2.0.2-1 all [installed,automatic]
fonts-smc/focal,focal,now 1:7.1 all [installed,automatic]
libxdmcp6/focal,now 1:1.1.3-0ubuntu1 amd64 [installed,automatic]
libxvmc1/focal,now 2:1.0.12-2 amd64 [installed,automatic]
mc-data/focal,focal,now 3:4.8.24-2ubuntu1 all [installed,automatic]
mc/focal,now 3:4.8.24-2ubuntu1 amd64 [installed]
pcmciautils/focal,now 018-11 amd64 [installed,automatic]

결과는 위와 같이 나오구요. 실제로 밑에서 두번째 줄에 있는 아이가 mc 입니다 ^^

그럼 다시 돌아가서

upgrade 명령어

업그레이드 가능한 목록을 알아 봤으니 upgrade를 해보겠습니다.

 sudo apt upgrade

명령어는 위와 같습니다.

위 명령어를 내리면 알아서 인터넷에서 받아와서 업그레이드를 진행 합니다. ^^

꺼꾸로 이긴 한데 ^^

upgrade 까지 배웠으니

install 명령어

install을 알아 보겠습니다.

sudo apt install 원하는패키지명

위와 같이 설치 합니다.

음 제가 설치 해둔 리눅스는 컴파일러가 없습니다.

그래서 gcc를 한번 설치 해보겠습니다.

sudo apt install gcc

설치 하기 전에 gcc 엔터를 쳤습니다.

gcc

Command 'gcc' not found, but can be installed with:

sudo apt install gcc

설치 후에 gcc 엔터를 쳤습니다.

gcc
gcc: fatal error: no input files
compilation terminated.

앞에는 프로그램이 없으니 설치 하라고 하고 뒤에는 C파일이 없다고 C파일하나를 내놓으라고 합니다. ^^

설치가 잘 되었씁니다.

remove 명령어

설치가 있으면 삭제가 있습니다. ^^

remove 는 아래와 같습니다.

sudo apt remove gcc

위와 같이 하시면 됩니다.

sudo apt remove gcc
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  gcc
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 51.2 kB disk space will be freed.
Do you want to continue? [Y/n] y
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "ko_KR.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 166383 files and directories currently installed.)
Removing gcc (4:9.3.0-1ubuntu2) ...
Processing triggers for man-db (2.9.1-1) ...

실행을 해보면 잘 지워 집니다.

gcc
-bash: /usr/bin/gcc: No such file or directory

다시 아까 처럼 gcc를 쳐봤는데 그렇게 친절 하지는 않네요 ^^

여튼 삭제가 되었습니다.

reinstall 명령어

sudo apt reinstall 패키지명

gcc를 reinstall 해보겠습니다.

sudo apt reinstall gcc

reinstall은 설치할지를 안묻고 바로 설치 해버리네요 ^^

isntall만 사용하셔도 될 것 같습니다.

search 명령어

search 명령어는 설치할 패키지가 있는지 알려 줍니다.

요즘 관심 가지고 있는 obsidian 이 있는지 찾아 보도록 하겠습니다.

apt search obsidian
apt search obsidian*
Sorting... Done
Full Text Search... Done
minetest-mod-nether/focal,focal 2-4 all
  Minetest mod - Nether portals and materials

obsidian-icon-theme/focal,focal 3.5-1 all
  Intuitive Faenza-like icon theme

결과는 위와 같이 나왔습니다.

음 실제 프로그램은 없는 건가요?

일단 한번 리눅스에 옵시디안 설치하는 방법도 글을 한번 써봐야 겠습니다.

show 명령어

이제 마지막으로 show에 대해서 이야기 해보겠습니다.

sudo apt show 패키지명

위와 같이 사용할 수 있습니다.

mc를 한번 show로 보겠습니다.

sudo apt show mc
[sudo] password for talkit:
Package: mc
Version: 3:4.8.24-2ubuntu1
Priority: optional
Section: universe/utils
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Dmitry Smirnov <onlyjob@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 1501 kB
Provides: mcedit
Depends: libc6 (>= 2.15), libext2fs2 (>= 1.37), libglib2.0-0 (>= 2.59.2), libgpm2 (>= 1.20.7), libslang2 (>= 2.2.4), libssh2-1 (>= 1.2.8), mc-data (= 3:4.8.24-2ubuntu1)
Recommends: mime-support, perl, unzip
Suggests: arj, bzip2, catdvi | texlive-binaries, dbview, djvulibre-bin, epub-utils, file, genisoimage, gv, imagemagick, libaspell-dev, links | w3m | lynx, odt2txt, poppler-utils, python, python-boto, python-tz, xpdf | pdf-viewer, zip
Homepage: https://www.midnight-commander.org
Download-Size: 477 kB
APT-Manual-Installed: yes
APT-Sources: http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
Description: Midnight Commander - a powerful file manager
 GNU Midnight Commander is a text-mode full-screen file manager. It
 uses a two panel interface and a subshell for command execution. It
 includes an internal editor with syntax highlighting and an internal
 viewer with support for binary files. Also included is Virtual
 Filesystem (VFS), that allows files on remote systems (e.g. FTP, SSH
 servers) and files inside archives to be manipulated like real files.

정말 멋진 툴이네요 ^^

여기까지가 apt의 기본 사용법입니다.

제가 매일 그냥 사용하고 있고 저도 솔직히 REDHAT계열에서 넘어와서 apt 보다는 yum 이 익숙한데 ^^

저도 좀 정리가 되는 느낌입니다.

ubuntu는 보안상 sudo를 사용하고 있습니다.

REDHAT 계열의 시스템들도 sudo를 사용하는 것이 좋습니다.

저 방법을 언젠가는 적어 보겠습니다.

감사합니다.

#linux #ubuntu #install

반응형
반응형

안녕하세요 가야태자 @talit 입니다.

오늘은 추억의 프로그램을 말씀 드리겠습니다.

여러분은 도스를 아시는 세대인가요?

도스시절에 많이 사용되던 프로그램입니다.

이녀석의 원조가 DOS 입니다. Disk Operating System 의 약자 입니다. DOS 많은 회사에서 출시 했었습니다. IBM-DOS도 있고, MS-DOS도 있습니다. 제일 유명한 건 아무래도 MS 즉 마이크로소프트의 도스곘지요.

저도 MS-DOS라는 운영체제를 사용했습니다. 3.대 부터 6.대까지였던 것 같습니다.

그다음에 Windows 3.1이나오고, 윈도우즈 95가 나오고 98이나오고 지금의 Windows 10,11 까지 ^^ 오고 있습니다.

다시 mc 로 돌아가서 ^^

dos 시절에 디렉토리를 이동 하려면, 제가 알려드린 리눅스와 마찬가지로 cd를 이용해서 일이 처야 했습니다.

아직 제가 글은 안썼지만, 리눅스 하시는 분들은 알고 계실, shell script나 bat 파일을 이용해서 많은 작업을 했습니다.

그런데, 정말 편리한 툴이 두가지가 있었습니다. 외국에서는 Norton Comander가, 우리나라에서 Mdir이라는 프로그램 이었습니다.


출처 : 위키피디아 Norton Commander - Wikipedia

노턴은 저렇게 생겼습니다.


출처 : Mdir III 3.10 - DOS 프로그램 저장소 (tistory.com)

Mdir은 이렇게 생겼습니다.

둘다 비슷하구요 ^^ cd와 배치 프로그램이 난무하던 DOS를 정말 많이 도와 주는 프로그램입니다.

cd가 아니고 키보드를 이용해서 디렉토리 이동을 할 수 있고, 양쪽을 폴더 리스트를 이용해서 복사도 할 수 있고 ^^ 디렉토리 삭제도 할 수 있고 정말 획기적이었습니다.

저는 제 나름의 플로피 디스크를 들고 다니면서 대학교 1학년 시절에 ^^

전산실에서 저 프로그램을 만났습니다.

저는 그때도 컴퓨터에 관심이 많았기 때문에 ^^ 까만 화면에서 뭔가를 하고 있었습니다.

그런데 선배님이 오시더니 뭐하노 왜 화면이 까맣노? 라고 하시는 겁니다. ^^

그러더니 ^^, 도스창에 m 엔터를 치시는거였습니다. ^^

ㅋㅋㅋ 그 다음부터는 신세계였습니다. ^^

그런데, putty로 접속했을때 저런 프로그램이 있으면 좋겠다 라는 생각을 리눅스를 사용하면서 많이 했었습니다.

헉, 그런데 말입니다. 있습니다. ^^

Midngiht Commander 라고 줄여서 mc 라고 합니다.

우선 설치 부터 해보겠습니다.

지금 저는 우분투를 사용하기 때문에 ^^

sudo apt install mc

간단하지요 ^^

설치는 다 되었습니다.

mc

실행 명령어는 위와 같습니다.

그냥 프롬프트에 위에서 선배님이 m 치셨듯이 ㅋㅋㅋ mc를 치시면 됩니다.

![[Pasted image 20230106202721.png]]

그러면 이렇게 나옵니다. ^^ 영문일 뿥 Mdir하고 비슷하지 않나요 ^^

색상은 Norton 하고 비슷하지만요 ㅎㅎㅎ

아마 외국에서 개발된 툴이어서 색상은 노턴하고 비슷하게 된 것 같습니다.

mc로 파일편집, 파일이동, 파일 삭제 디렉토리 생성 등은 특수키로 모든걸 다하실 수 있습니다.

탭키로는 두 탭간의 이동을 합니다. 엔터키는 쳐보시면 알겠지만 해당 위치로 이동 하거나, Shell 파일이나 실행파일이면 실행도 해주고, 심시 tar 압축도 해제해 줍니다. ^^

무시 무시한 툴입니다.

리눅스에 적응이 안되면 mc 를 설치하고 사용하시는 방법도 하나의 대안이 되겠습니다.

감사합니다.

반응형
반응형

안녕하세요 가야태자 @talkit 입니다.

요즘 진짜로 여러가지를 다뤄보고 이야기 해보고 있습니다.

오늘 설치해보려고 하는 minIO는 오픈소스 오브젝트 스토리지 소스이자 서비스입니다. 그리고 가장 재미 있는 것은 아마존의 S3와 호환이 됩니다.

그래서 S3에 있는 데이타를 minIO 서비스로 이전하거나 심지어 minIO 셀프호스트 서버로 이전이 가능 합니다.

node js client가 동일하게 동작 합니다. ^^

MinIO | High Performance, Kubernetes Native Object Storage

저도 많이 써보지는 못해서 위 URL에 잘 설명 되어 있습니다. ^^

이제 본격적으로 설치를 시작해보겠습니다.

일단 Single Node와 Multi Node가 있습니다.

여기서 저는 Single Node 정말 간단하게 테스트를 해볼 것이라서 ^^

Single Node에는 Single-Drive와 Multi-Drive가 있습니다.

이것도 현재는 Single-Drive를 생각하고 있습니다.

일단 Single Node에 Single-Drive를 만들어 보고 좋으면 Multi로 넘어가던지 해야 할 것 같습니다.

오늘은 설치에 매진 하겠습니다.

minIO 서버 다운로드

저는 현재 Ubuntu를 사용하고 있어서

wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20230102094009.0.0_amd64.deb -O minio.deb
sudo dpkg -i minio.deb

이렇게 치라고 하네요 ^^ 해보겠습니다.

저는 거의 매일 접속하는 것 같습니다.

제 VM에 있는 Ubuntu 서버에 접속 합니다.

접속은 잘 되었고, 다운로드를 했는데 잘 되었습니다. ^^

wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20230102094009.0.0_amd64.deb -O minio.deb
--2023-01-05 03:39:47--  https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20230102094009.0.0_amd64.deb
Resolving dl.min.io (dl.min.io)... 178.128.69.202, 138.68.11.125
Connecting to dl.min.io (dl.min.io)|178.128.69.202|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 38937942 (37M) [application/vnd.debian.binary-package]
Saving to: ‘minio.deb’

minio.deb           100%[===================>]  37.13M   408KB/s    in 3m 14s

2023-01-05 03:43:02 (196 KB/s) - ‘minio.deb’ saved [38937942/38937942]

위와 같이 잘 나오고 있습니다.

설치도 한번 해보겠습니다.

다음에는 도커로도 설치를 해보겠지만, 일단 오늘은 도커 말고, deb파일로 설치를 진행 합니다.

 sudo dpkg -i minio.deb
[sudo] password for talkit:
Selecting previously unselected package minio.
(Reading database ... 161767 files and directories currently installed.)
Preparing to unpack minio.deb ...
Unpacking minio (20230102094009.0.0) ...
Setting up minio (20230102094009.0.0) ...

이번에도 잘 설치가 됩니다.

systemd 파일은

 vi /etc/systemd/system/minio.service

여기에 잘 설치가 되었습니다.

현재 저는 Deploy MinIO: Single-Node Single-Drive — MinIO Object Storage for Linux

저 문서를 보고 따라하고 있습니다.

minIO 서버는 minio-user에 의해서 구동 된다네요 그래서 minio-user 를 만들어라고 합니다. ^^

groupadd -r minio-user
useradd -M -r -g minio-user minio-user
chown minio-user:minio-user /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4

여기서 디렉토리는 예제라서 minIO가 사용할 디렉토리를 저렇게 해주시면 됩니다.

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local

User=minio-user
Group=minio-user
ProtectProc=invisible

EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

# Built for ${project.name}-${project.version} (${project.name})

자동으로 설치된 min는 저기 보시다 싶이 minio-user에 의해서 동작하고 있습니다.

저희는 싱글로 설치 할꺼라서 ^^ 계속 이문서를 따라 하겠습니다.

sudo vi /etc/default/minio

저기에 기본 설정 파일이 있다고 합니다.

한번 보겠습니다.

실제로 없네요 ㅋㅋㅋ

# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
# This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
# Omit to use the default values 'minioadmin:minioadmin'.
# MinIO recommends setting non-default values as a best practice, regardless of environment

MINIO_ROOT_USER=myminioadmin
MINIO_ROOT_PASSWORD=minio-secret-key-change-me

# MINIO_VOLUMES sets the storage volume or path to use for the MinIO server.

MINIO_VOLUMES="/mnt/data"

# MINIO_SERVER_URL sets the hostname of the local machine for use with the MinIO Server
# MinIO assumes your network control plane can correctly resolve this hostname to the local machine

# Uncomment the following line and replace the value with the correct hostname for the local machine.

#MINIO_SERVER_URL="http://minio.example.net"

가장 간단한 예제 파일 입니다.

vi 편집기로 저는 그대로 ^^ 붙여 넣었습니다.

일단 위에 보면 /mnt/data를 사용하네요

sudo mkdir -p /mnt/data
sudo chown -R minio-user:minio-user /mnt/data

권한을 해당 사용자에게 주었습니다.

MINIO_ROOT_USER=myminioadmin
MINIO_ROOT_PASSWORD=minio-secret-key-change-me

위 두줄은 수정 하시는 것이 좋답니다. ^^

저도 보안 권고를 받을때 amdin 이런 단순한 아이디를 사용하지 않아야 한다고 보안 권고를 받는 경우가 많아서요.

여기 문서에서도 기본 말고 다른것으로 사용하랍니다.

저는 제가 변경 했습니다.

여러분도 여러분이 원하는 아이디 비밀번호로 변경 하십시오.

변경 했으면 한 번 켜 보겠습니다.

sudo systemctl start minio.service
sudo systemctl status minio.service
● minio.service - MinIO
     Loaded: loaded (/etc/systemd/system/minio.service; disabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-01-05 04:07:06 PST; 8s ago
       Docs: https://docs.min.io
    Process: 3057 ExecStartPre=/bin/bash -c if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not set in /etc/default/minio"; exit 1; fi (code=exited, status=0/SUCCESS)
   Main PID: 3058 (minio)
      Tasks: 21
     Memory: 88.8M
     CGroup: /system.slice/minio.service
             └─3058 /usr/local/bin/minio server /mnt/data

Jan 05 04:07:06 ubuntu minio[3058]: WARNING: Host local has more than 0 drives of set. A host failure will result in data becoming unavailable.
Jan 05 04:07:06 ubuntu minio[3058]: Warning: Default parity set to 0. This can lead to data loss.
Jan 05 04:07:06 ubuntu minio[3058]: MinIO Object Storage Server
Jan 05 04:07:06 ubuntu minio[3058]: Copyright: 2015-2023 MinIO, Inc.
Jan 05 04:07:06 ubuntu minio[3058]: License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Jan 05 04:07:06 ubuntu minio[3058]: Version: RELEASE.2023-01-02T09-40-09Z (go1.19.4 linux/amd64)
Jan 05 04:07:06 ubuntu minio[3058]: Status:         1 Online, 0 Offline.
Jan 05 04:07:06 ubuntu minio[3058]: API: http://192.168.0.27:9000  http://127.0.0.1:9000
Jan 05 04:07:06 ubuntu minio[3058]: Console: http://192.168.0.27:44313 http://127.0.0.1:44313
Jan 05 04:07:06 ubuntu minio[3058]: Documentation: https://min.io/docs/minio/linux/index.html

상태를 확인 해봤는데 잘 켜진 것 같습니다.

journalctl -f -u minio.service
-- Logs begin at Sun 2022-12-25 00:14:58 PST. --
Jan 05 04:07:06 ubuntu minio[3058]: WARNING: Host local has more than 0 drives of set. A host failure will result in data becoming unavailable.
Jan 05 04:07:06 ubuntu minio[3058]: Warning: Default parity set to 0. This can lead to data loss.
Jan 05 04:07:06 ubuntu minio[3058]: MinIO Object Storage Server
Jan 05 04:07:06 ubuntu minio[3058]: Copyright: 2015-2023 MinIO, Inc.
Jan 05 04:07:06 ubuntu minio[3058]: License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Jan 05 04:07:06 ubuntu minio[3058]: Version: RELEASE.2023-01-02T09-40-09Z (go1.19.4 linux/amd64)
Jan 05 04:07:06 ubuntu minio[3058]: Status:         1 Online, 0 Offline.
Jan 05 04:07:06 ubuntu minio[3058]: API: http://192.168.0.27:9000  http://127.0.0.1:9000
Jan 05 04:07:06 ubuntu minio[3058]: Console: http://192.168.0.27:44313 http://127.0.0.1:44313
Jan 05 04:07:06 ubuntu minio[3058]: Documentation: https://min.io/docs/minio/linux/index.html

오 journalctl -f -u minio.service 명령어로 확인 하니깐 뭔가 나오네요 ^^

위와 같이 잘 나오네요.

접속을 한번 해보겠습니다.

이야 아까 만든 비밀번호로 로그인도 잘 됩니다.

그럼 내일 부터는 버킷을 만들고 파일을 올리는 등의 방법을 적어 보겠습니다

하루에 하나만 포스팅 하고 있어서 ^^

다음 글이 언제 출판될지 모르겠지만, 저는 열심히 글을 적고 있겠습니다.

감사합니다.

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

요즘 Slack에 관심이 있었는데 Slack이 유료라서 Mattermost에 관심을 두고 있습니다. 

그런데, 하나 하나 해보고 있는데 gitlab.com 이라고 github와 비슷한 git 저장소 서비스의 플러그인을 설정해 보겠습니다. 

저는 주로 gitlab을 사용하는 이유가 처음 사용해서 라고 해야할까요^^

마이크로소프트에 인수 되기 전까지 github는 폐쇄 소프트웨어는 유료로 저장소를 사용해야 했습니다. 

요즘은 폐쇄도 가능한 것으로 알고 있습니다. 

하지만, gitlab은 무료인데 폐쇄 소프트웨어 즉 회사 소스 관리를 할 수 있게 해주었습니다. 

그래서 사용하게 되었고 지금도 사용하고 있습니다. 

그래서 gitlab과 제가 설치한 mattermost를  연동 하고 싶었습니다. 

우선 설치는 관리자 아이디로 접속하고, 채널에 접속 합니다. 

그리고, 저위에 보시면 바둑판 아이콘을 클릭하고 Marketplace를 클릭합니다. 

그러면 이 비슷한 모양이 나옵니다.

저기서 현재는 2페이지에 gitlab plugin이 들어 있습니다. 

제가 설치하려고 하는 GitHub/GitLab/Jenkins 까지 모두 들어 있습니다. ^^

설치는 제가 GitLab을 설치해버려서 ^^ 다른 플러그인 처럼 Install 누르시면 됩니다. 

이제 Configuration을 해야 합니다. 

Configure 버튼을 클릭하면

위 그림 처럼 플러그인 설정화면으로 이동 합니다. 

https://gitlab.com/-/profile/applications. 이 주소를 클릭 하셔서 gitlab으로 이동 합니다. 

로그인이 안되어 있으면 로그인 하시고 ^^

위와 비슷한 화면이 나타날텐데요 ^^ Name에 Mattermost - 회사명 정도를 넣으라고 되어 있네요 ^^

https://your-mattermost-url.com/plugins/com.github.manland.mattermost-plugin-gitlab/oauth/complete, replacing https://your-mattermost-url.com

그리고 Redirect URI는 저기서 your-matter-url.com을 여러분의 도메인으로 바꾸면 되는 것 같습니다. 

저는 변경 했습니다. 

그리고, api, read_user 를 선택 합니다. 

Save application을 클릭하십시오.

위 화면이 나오면 Application ID하고 Secret 를 각각 복사해 둡니다. 

저는 복사를 해두었습니다. 

그리고 Mattermost 설정화면으로 돌아 오십시오.

이 화면으로 돌아 오셔야 합니다. ^^

Enable Plugin 을 true로 합니다. 

 그리고 Gitlab URL, Oauth Client ID, Secret를 아까 복사해둔 두개와 주소는 셀프호스트 아니면 저대로 두시면 됩니다. 

그리고 나서 Webhook Secret 과 At Rest Encryption Key 아래에 Regenerate 를 각각 클릭 합니다. 

채널로 돌아가셔서

채널 상에다가 

/gitlab connect

이렇게 하시면 링크가 하나 나오는데 이링크를 클릭 하십시오

Shift 누르고 클릭하시는 것이 좋습니다. 

지금은 주확색인데 인증 버튼을 한번 눌러 줍니다. 

그러면 인증을 시작 합니다. 

끝나면, 돌아오는데 창을 닫으라고 하면 닫으십시오.

/gitlab subscriptions add userid/[그룹또는프로젝트] issues,merges,pushes,issue_comments

잘되었는데 성공했다는 메시지가 나옵니다. 

/gitlab webhook add userid/그룹또는프로젝트명

식을 뜹니다. 

저걸 다시 채팅창에 쳐 주십시오.

웹 훅이 만들어 졌구요.

Readme를 Push 해보겠습니다. ^^

요렇게 잘 나옵니다. 

Slack를 왜 쓰는지 이제 알겠습니다. 

오늘은 여기까지하고 또 다른 Mattermost글을 써보겠습니다. 

관련글 

리눅스/Linux Slack 대체 프로그램 Mattermost를 설치해보자. How to install Mattermost on Ubuntu Linux https://talkit.tistory.com/695

리눅스/Linux Mattermost https로 운영하기 How to setup mattermost via https on ubuntu https://talkit.tistory.com/704

리눅스/Linux Mattermost 구글 메일서버와 Email 알림 설정하기. How to setup Google SMTP & email notification. https://talkit.tistory.com/705

리눅스/Linux Mattermost 회원가입 초대 가능하게 하기. How to setup enable account creation. https://talkit.tistory.com/708

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

요즘 저는 Ubuntu 리눅스를 주로 사용해서 이야기를 하고 글을 적고 있습니다. 

하지만, 제가 가장 많이 접하고, 사용했던 리눅스는 빨간모자 즉, RedHat 계열의 리눅스 들입니다. 

RHEL이라고 레드햇 엔터프라이즈 리눅스, Fedora라고 페도라리눅스, RHEL이 상용화되면서, CentOS라는 리눅스까지 모두 Redhat 계열의 리눅스 입니다. 참 써보지는 않았지만, Oracle Linux도 RedHat 계열로 알고 있습니다. 

왜 이야기를 드리느냐? 그 이유는 CentOS가 원래 본연의 목적을 더이상 진행하지 않기 때문입니다. 

그래서 저도 고민을 했습니다. 그냥 CentOS를 쓸것인가? 우분투로 갈것인가? 하지난 아직 실제로 사용하고 있는 상용 서버는 CentOS를 사용하고 있습니다. ^^ 제 개인적으로 사용하는 서버들은 Ubuntu를 사용하고 있습니다. 아참 제가 다니는 회사가 과학회사인데 T.T 저는 문과 입니다. ^^ 과학용으로는 또 Fedora도 가끔 사용합니다. ^^

Ubuntu외에 알고는 있었지만, 또하나의 대안이 있어서 소개해 드립니다. 오늘은 소개해 드리고 ^^ 다른 글에서 VMWARE 에 한번 설치해보겠습니다. ^^

이 배포판의 목적은 대놓고 적고 있습니다. RHEL의 커뮤니티 판이라구요. 즉 RHEL을 무료로 사용할 수 있다는 겁니다. 

CentOS는 조금간 EOS(서비스 종료)될 예정입니다. 그리고 CentOS Stream 이라고, RHEL의 테스트 버전으로 남게 됩니다. 

참 리눅스는 Open Source여서 개발을 하게 되면 일부 소스를 제외하고는 모두 공개하게 되어 있습니다. 그래서 가능한 것이 커뮤니티 버전 입니다. ^^ 소스가 공개 되어 있으니, 컴파일을 해서 다시 배포판을 만들면, 그 배포판에 배포판 만드신 분이 뻘짓만 안하면 ^^ 정말 괜찮은 방법입니다. ^^

로고 바꾸고 서비스 URL정도를 바꾸고, 계속 패치 해주고 얼마나 좋습니까 ^^

아참 제목에는 있지만, 새로운 리눅스의 이름을 본문에는 하나도 안적었네요 신기 합니다. ^^

리눅스의 이름의 로키(Rocky)리눅스입니다. CentOS의 원래 창시자 이름중 하나라고 되어 있씁니다. ^^

다운로드 페이지는 저렇게 생겼습니다. ^^

저기서 잘 봐두셔야 할 부분은 Planned EOL: 입니다. 2029년까지네요 정말 깁니다. ^^

그래서 조금 찾아 봤습니다. 

EOL 이 End of Life네요 T.T

Active Support는 리눅스내의 패키지 업데이트를 이양 합니다. 8 버전대는 2024년 5월 31일까지네요. 저기 위에 있었는 EOL은 Security Support가 2029년 5월 31일에 끝나네요.

상당히 좋은 조건 입니다. ^^

진짜로 한번 마이그레이션 고민을 해봐야겠습니다. 

요늘은 Rocky 리눅스를 소개 해 드렸구요.

다음 글에서는 설치를 한번 해봐야겠습니다. 

감사합니다. 

참 소개만 하고 까먹었네요 ^^

로키 리눅스 홈페이지 : https://rockylinux.org/

 

Rocky Linux

Rocky Linux is an open enterprise Operating System designed to be 100% bug-for-bug compatible with Enterprise Linux.

rockylinux.org

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

오늘 Mattermost에서 알아볼 것은 간단 합니다. 

지금 현재까지는 아마 찾으신 분들도 있겠지만, 제 강의를 따라 오셨다면, 채팅방에 혼자 계셨을 가능성이 있습니다. 

오늘은 채팅창에 여러명을 초대 할 수 있도록 만들어 보겠습니다. 

짧다고 말씀 드린 이유는 위그럼이 다여서 그렇습니다. ^^

우선 젤 위에 Enable Account Creation 이 true로 되어 있어야 합니다. 

Enable Open Server를 true로 주면 저는 위험하다고 생각이 되어서 ^^

Enable Email invitations 만 true로 줬습니다. 

저렇게 하고 아래 저장 버튼을 클릭하시면 끝입니다. 

그리고 채널로 돌아가서 앗 채널 만들어기를 설명을 안드렸나요 T.T

다음에 또 글을 적겠습니다. 

Invite Members를 클릭하시고

To에다가 초대할 이메일 넣으시고 Invite 또는 초대를 누르시면

다시 Invite 눌러주시면 됩니다. 

그러면, 메일을 셋팅 하셨다면 ^^

초대 메일이 Email 주소 소유자 분에게 갈꺼고 그분이 가입해서 아이디를 만드는 식입니다. ^^

이런식으로 초대된 사용자들과 대화가 가능 합니다. 

관련글

리눅스/Linux Slack 대체 프로그램 Mattermost를 설치해보자. How to install Mattermost on Ubuntu Linux :: 가야태자의 IT이야기 (tistory.com)

 

리눅스/Linux Slack 대체 프로그램 Mattermost를 설치해보자. How to install Mattermost on Ubuntu Linux

안녕하세요 가야태자 @talkit 입니다. 이번 글에서는 제가 지난 번에 리눅스를 설치 하면서 뭔가를 설치해보고자한다고 말씀 드렸는데 그것 중에 하나가 Mattermost라는 툴입니다. 이툴은 Slack이라는

talkit.tistory.com

리눅스/Linux Mattermost https(SSL)로 운영하기 How to setup mattermost via https(SSL) on ubuntu :: 가야태자의 IT이야기 (tistory.com)

 

리눅스/Linux Mattermost https(SSL)로 운영하기 How to setup mattermost via https(SSL) on ubuntu

안녕하세요 가야태자 @talkit 입니다. 리눅스/Linux Slack 대체 프로그램 Mattermost를 설치해보자. How to install Mattermost on Ubuntu Linux https://talkit.tistory.com/695 위글에 이어서 ^^ 지금 현재 저는 성공 했습니

talkit.tistory.com

리눅스/Linux Mattermost 구글 메일서버와 Email 알림 설정하기. How to setup Google SMTP & email notification. :: 가야태자의 IT이야기 (tistory.com)

 

리눅스/Linux Mattermost 구글 메일서버와 Email 알림 설정하기. How to setup Google SMTP & email notification.

안녕하세요 가야태자 @talkit 입니다. 일단 NGINX 관련 설정을 제외하고는 거의 끝났습니다. 이제 Email 알림을 동작하도록 해보겠습니다. 우선 Email은 메일서버가 있어야지 구동이 가능합니다. 그래

talkit.tistory.com

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

리눅스/Linux 편집기를 사용해보자 vi/vim 열고(Open) 닫기(Close) https://talkit.tistory.com/591

리눅스/Linux vi/vim NIX에서 가장 유명한 텍스트 편집기 - 글쓰기. One of the best text editor on NIX fields. - Writing https://talkit.tistory.com/699

오늘은 위글들 다음으로 쓰는 글입니다. 잠시 또 다른 길로 샜다가 왔습니다. ^^

끌쓰기는 익히셨다면 ^^

대한민국
동해물
백두산
한라산
백록담
천지
서울
대전
대구
부산
하늘
땅
검은색
우리나라
강산
아리앙
Apple
a
an
the
Korea
Republic of Korea
Internet
What is this
english
korean
Guten Tak
Guten Morgan
Guten Abent
문서 줄 수 30줄

지난 번에는 새로운 문서를 입력하는 법을 알려 드렸습니다.

이제는 글자를 지우고 문장을 지우고 문장을 입력하는 등의 일을 해보겠습니다. 

자  위 파일을 우리는 testtext.txt 로 저장 하겠습니다. 

이제 제가 말씀을 안드려서 저 문서를 그대로 vi 편집기에 옮길 수 있으시죠 ^^

그리고, <Esc> :wq 를 용해서 저장하고 빠저 나온 다음에 다음 작업을 또 시작 하겠습니다. 

vi testtext.txt

위명령어를 이용해서 문서를 만들고 다시 문서를 여셨나요?

저는 여셨다고 보고 ^^

실제로 제가 30줄의 단어를 나열 했는지 확인 해보겠습니다. 

<Esc> 누르시고, :set nu

명령어를 입력해 주십시오

 

      1 대한민국
      2 동해물
      3 백두산
      4 한라산
      5 백록담
      6 천지
      7 서울
      8 대전
      9 대구
     10 부산
     11 하늘
     12 땅
     13 검은색
     14 우리나라
     15 강산
     16 아리앙
     17 Apple
     18 a
     19 an
     20 the
     21 Korea
     22 Republic of Korea
     23 Internet
     24 What is this
     25 english
     26 korean
     27 Guten Tak
     28 Guten Morgan
     29 Guten Abent
     30 문서 줄 수 30줄

이렇게 나오면 합격 ^^

자 이제 첫번째 줄을 지워 보겠습니다. 

12번째 줄을 지워보겠습니다. ^^

그러면 이제  또 <Esc>  누르시고, :12  엔터 치십시오

그러면 커서가 12번째 줄로 이동할껍니다. 

그자리에서 역시 숙달 되시면 안해도 되겠지만, 가끔 다른 키를 누르시고, 안된다는 분들이 있어서 ^^ <Esc> 한번더 누르시고, dd를 누르십시오.

      1 대한민국
      2 동해물
      3 백두산
      4 한라산
      5 백록담
      6 천지
      7 서울
      8 대전
      9 대구
     10 부산
     11 하늘
     12 검은색
     13 우리나라
     14 강산
     15 아리앙
     16 Apple
     17 a
     18 an
     19 the
     20 Korea
     21 Republic of Korea
     22 Internet
     23 What is this
     24 english
     25 korean
     26 Guten Tak
     27 Guten Morgan
     28 Guten Abent
     29 문서 줄 수 30줄

줄 지우기 입니다. 

그런데 지운게 실수다 우리에게 중요한 Undo 신이 ^^ vi에도 있습니다. 

소문자 u를 누르십시오.

      1 대한민국
      2 동해물
      3 백두산
      4 한라산
      5 백록담
      6 천지
      7 서울
      8 대전
      9 대구
     10 부산
     11 하늘
     12 땅
     13 검은색
     14 우리나라
     15 강산
     16 아리앙
     17 Apple
     18 a
     19 an
     20 the
     21 Korea
     22 Republic of Korea
     23 Internet
     24 What is this
     25 english
     26 korean
     27 Guten Tak
     28 Guten Morgan
     29 Guten Abent
     30 문서 줄 수 30줄

자 12번째 줄인 땅이 복구 되었습니다. ^^

조심해야 할 것 같습니다. T.T Undo를 한번만 제공하는 것 같네요 ^^

자 그럼 글자를 지워 보겠습니다. 24번째 줄에 What를 지워보도록 하겠습니다. 

이번에는 : 누르고 숫자 누르십시오 ^^

그리고 24번째 줄로 커서가 이동했으면 W 위에 커서를 놓으시고, 아시죠 hjkl 을 이용해서 ^^ 잘 조정하시기를 

대문자 W 앞에서 소문자 x를 글자수만큼 누릅니다. What는 4글자니까 4번만 누르겠습니다. 띄워쓰기도 지우려면 다섯번 누르셔도 됩니다. 

      1 대한민국
      2 동해물
      3 백두산
      4 한라산
      5 백록담
      6 천지
      7 서울
      8 대전
      9 대구
     10 부산
     11 하늘
     12 땅
     13 검은색
     14 우리나라
     15 강산
     16 아리앙
     17 Apple
     18 a
     19 an
     20 the
     21 Korea
     22 Republic of Korea
     23 Internet
     24  is this
     25 english
     26 korean
     27 Guten Tak
     28 Guten Morgan
     29 Guten Abent
     30 문서 줄 수 30줄

잘 따라 하셨으면 위와 같이 되었을 겁니다. ^^

is 앞에다가 커서 놓으시고, i를 누르셔서 What을 복원 하십시오.

What라고 치시면 됩니다. ^^

그러면 다시 복원이 되었을 것 같습니다. 

그런데 그러면 dd를 내가 지우고 싶은게 지워 질때가지 쳐야 하나요?

아닙니다. 3dd 라고 입력해 볼껍니다.

위치는 사과를 없애 보겠습니다. Apple죠

마찬가지로 : 번호 누르셔서 잘 따라 오십시오.

17라인에 오셨으면 잘 따라해보십시오. 3dd

      1 대한민국
      2 동해물
      3 백두산
      4 한라산
      5 백록담
      6 천지
      7 서울
      8 대전
      9 대구
     10 부산
     11 하늘
     12 땅
     13 검은색
     14 우리나라
     15 강산
     16 아리앙
     17 the
     18 Korea
     19 Republic of Korea
     20 Internet
     21 What is this
     22 english
     23 korean
     24 Guten Tak
     25 Guten Morgan
     26 Guten Abent
     27 문서 줄 수 30줄

Apple, a , an 이 사라졌습니다. ^^

여러분은 잘 지워졌나요

이렇게 하시면 됩니다. 

u를 누르셔서 다시 세줄을 복원 합니다. ^^

찾기부터 해보겠습니다. 

Korea를 찾아 보지요 ^^

/Korea를 입력해보십시오.

      1 대한민국
      2 동해물
      3 백두산
      4 한라산
      5 백록담
      6 천지
      7 서울
      8 대전
      9 대구
     10 부산
     11 하늘
     12 땅
     13 검은색
     14 우리나라
     15 강산
     16 아리앙
     17 Apple
     18 a
     19 an
     20 the
     21 Korea
     22 Republic of Korea
     23 Internet
     24 What is this
     25 english
     26 korean
     27 Guten Tak
     28 Guten Morgan
     29 Guten Abent
     30 문서 줄 수 30줄
~
~
~
?Korea

이렇게 나오고 T.T 저기 커서는 안보이지만 여러분은 커서가 Korea에 와있지요?

다음 찾기는 n 이전 찾기는 N 입니다. 한번 눌러 보십시오.

찾기를 알아 봤으니 바꿔 보겠습니다. 

What is this를 How are you 로 바꿔 보시죠 ^^

:%s/What is this/How are you

이렇게 하시면 됩니다. 

      1 대한민국
      2 동해물
      3 백두산
      4 한라산
      5 백록담
      6 천지
      7 서울
      8 대전
      9 대구
     10 부산
     11 하늘
     12 땅
     13 검은색
     14 우리나라
     15 강산
     16 아리앙
     17 Apple
     18 a
     19 an
     20 the
     21 Korea
     22 Republic of Korea
     23 Internet
     24 How are you
     25 english
     26 korean
     27 Guten Tak
     28 Guten Morgan
     29 Guten Abent
     30 문서 줄 수 30줄
~
~
~
:%s/What is this/How are you

잘 따라 하셨으면 위와 같이 변경되어 있을 겁니다. ^^

:%s/What is this/How are you/g

위 문서에서는 소용이 없겠지만, /g 옵션을 모든 문서의 내용을 변경 합니다. 

그래서 Korea를 Corea로 변경해 보겠습니다. 

:%s/Korea/Corea/g

위와 같이 하면 저위에 있는 2개의 Korea가 Corea로 변경 될 겁니다. 

      1 대한민국
      2 동해물
      3 백두산
      4 한라산
      5 백록담
      6 천지
      7 서울
      8 대전
      9 대구
     10 부산
     11 하늘
     12 땅
     13 검은색
     14 우리나라
     15 강산
     16 아리앙
     17 Apple
     18 a
     19 an
     20 the
     21 Corea
     22 Republic of Corea
     23 Internet
     24 How are you
     25 english
     26 korean
     27 Guten Tak
     28 Guten Morgan
     29 Guten Abent
     30 문서 줄 수 30줄
~
~
~

이렇게 보이시나요 ^^

대소문자를 구분하기 때문에 korean의 korea는 변경이 안되었습니다. ^^

vi/vim 도 많이 써보는 수 밖에 없습니다. 

여러가지 문서를 많이 다뤄 보시기를 바랍니다.

감사합니다. 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

리눅스/Linux 편집기를 사용해보자 vi/vim 열고(Open) 닫기(Close) https://talkit.tistory.com/591

리눅스/Linux vi/vim NIX에서 가장 유명한 텍스트 편집기 - 글쓰기. One of the best text editor on NIX fields. - Writing https://talkit.tistory.com/699

리눅스/Linux cat 간단한 텍스트 파일 보기 Simple Text File Viewer https://talkit.tistory.com/675

리눅스/Linux 기본 명령어 - ls, 파일 목록 보기 dir(?) https://talkit.tistory.com/581

[리눅스/Linux] 파일 복사(Copy File) cp 명령어(Command) https://talkit.tistory.com/668

[리눅스/Linux] 파일 이동시키기(Move File)/이름 바꾸기(Change Name) mv 명령어(Command) https://talkit.tistory.com/667

리눅스에서 디렉토리를 만들어 보자. mkdir https://talkit.tistory.com/582

음 지금까지 리눅스 기본 관련글을 쓰면서 파일을 만들고,읽고, 목록확인하고, 이동 시키는 명령어는 열심히 알려 드렸습니다.  디렉토리 만들기도 했네요 ^^

위의 글들을 참고 하시면 되겠습니다. ^^

그런데 파일 삭제는 어떻게 할까요?

rm 이라는 명령어를 사용합니다. 

RM(1)                                                                                                                                               User Commands                                                                                                                                               RM(1)

NAME
       rm - remove files or directories

SYNOPSIS
       rm [OPTION]... [FILE]...

DESCRIPTION
       This manual page documents the GNU version of rm.  rm removes each specified file.  By default, it does not remove directories.

       If the -I or --interactive=once option is given, and there are more than three files or the -r, -R, or --recursive are given, then rm prompts the user for whether to proceed with the entire operation.  If the response is not affirmative, the entire command is aborted.

       Otherwise, if a file is unwritable, standard input is a terminal, and the -f or --force option is not given, or the -i or --interactive=always option is given, rm prompts the user for whether to remove the file.  If the response is not affirmative, the file is skipped.

OPTIONS
       Remove (unlink) the FILE(s).

       -f, --force
              ignore nonexistent files and arguments, never prompt

       -i     prompt before every removal

       -I     prompt once before removing more than three files, or when removing recursively; less intrusive than -i, while still giving protection against most mistakes

       --interactive[=WHEN]
              prompt according to WHEN: never, once (-I), or always (-i); without WHEN, prompt always

       --one-file-system
              when removing a hierarchy recursively, skip any directory that is on a file system different from that of the corresponding command line argument

       --no-preserve-root
              do not treat '/' specially

       --preserve-root[=all]
              do not remove '/' (default); with 'all', reject any command line argument on a separate device from its parent

       -r, -R, --recursive
              remove directories and their contents recursively

       -d, --dir
              remove empty directories

       -v, --verbose
              explain what is being done

       --help display this help and exit

       --version
              output version information and exit

       By default, rm does not remove directories.  Use the --recursive (-r or -R) option to remove each listed directory, too, along with all of its contents.

       To remove a file whose name starts with a '-', for example '-foo', use one of these commands:

              rm -- -foo

              rm ./-foo

       Note that if you use rm to remove a file, it might be possible to recover some of its contents, given sufficient expertise and/or time.  For greater assurance that the contents are truly unrecoverable, consider using shred.

매뉴얼에서 확인해보면 저렇게 쓴다고 합니다. 

저는 제 나름대로 또 설명하겠습니다. 

rm [옵션들] 파일명|*|*패턴*

위와 같이 씁니다. 

자 옵션들 중에서 -f -r -d -v 정도만 알면 되겠습니다. 

-f 는 강제로 무조건이라는 뜻이고

-r 은 하위 디렉토리까지 포함 한다는 뜻이구요.

-d 는 빈 디렉토리만 이라는 뜻입니다. 

-v 는 지워지는 파일을 보여줘라.

위와 같은 뜻이어서 

같이 사용할 수 있습니다. 

하나하나 한번 실습을 해보겠습니다. 

cp ftpserver.txt ftpserver1.txt
cp ftpserver.txt ftpserver2.txt
cp ftpserver.txt ftpserver3.txt
cp ftpserver.txt ftpserver4.txt
cp ftpserver.txt ftpserver5.txt

일단 예전에 ftp 실습할때 만들어 둔 파일을 5개를 더 만들었습니다. 

 mkdir emptydir
 mkdir notemptydir
 cp ftp* notemptydir/

빈디렉토리와 안빈디렉토리를 만들고 안빈 디렉토리에 파일을 좀 복사해 두었습니다. 

자 이제 rm 명령어를 실험해보겠습니다. 

ls -al
rm ftpserver1.txt
ls -al

위 명령어들을 순서대로 쳐 보겠습니다. ^^

talkit@ubuntu:~$ ls -al
total 331068
drwxr-xr-x 17 talkit talkit      4096 Jan  3 03:28 .
drwxr-xr-x  3 root   root        4096 Dec 25 00:12 ..
-rw-------  1 talkit talkit      4624 Jan  1 07:21 .bash_history
-rw-r--r--  1 talkit talkit       220 Dec 25 00:12 .bash_logout
-rw-r--r--  1 talkit talkit      3771 Dec 25 00:12 .bashrc
drwxrwxr-x 11 talkit talkit      4096 Dec 28 06:51 .cache
drwx------ 12 talkit talkit      4096 Dec 29 06:10 .config
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Desktop
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Documents
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Downloads
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:28 emptydir
-rw-r--r--  1 talkit talkit        35 Dec 30 00:27 ftpclient.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver1.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver2.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver3.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver4.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver5.txt
-rw-rw-r--  1 talkit talkit        35 Dec 30 00:27 ftpserver.txt
drwx------  3 talkit talkit      4096 Dec 25 00:21 .gnupg
-rw-------  1 talkit talkit        35 Dec 29 06:34 .lesshst
drwxr-xr-x  3 talkit talkit      4096 Dec 25 00:21 .local
-rw-rw-r--  1 talkit talkit 338882654 Dec 21 05:26 mattermost-7.5.2-linux-amd64.tar.gz
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Music
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:28 notemptydir
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Pictures
-rw-r--r--  1 talkit talkit       807 Dec 25 00:12 .profile
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Public
-rw-r--r--  1 talkit talkit         0 Dec 28 06:43 .sudo_as_admin_successful
drwxrwxr-x  2 talkit talkit      4096 Dec 30 00:37 temp
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Templates
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Videos
talkit@ubuntu:~$ rm ftpserver1.txt
talkit@ubuntu:~$ ls -al
total 331064
drwxr-xr-x 17 talkit talkit      4096 Jan  3 03:31 .
drwxr-xr-x  3 root   root        4096 Dec 25 00:12 ..
-rw-------  1 talkit talkit      4624 Jan  1 07:21 .bash_history
-rw-r--r--  1 talkit talkit       220 Dec 25 00:12 .bash_logout
-rw-r--r--  1 talkit talkit      3771 Dec 25 00:12 .bashrc
drwxrwxr-x 11 talkit talkit      4096 Dec 28 06:51 .cache
drwx------ 12 talkit talkit      4096 Dec 29 06:10 .config
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Desktop
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Documents
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Downloads
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:28 emptydir
-rw-r--r--  1 talkit talkit        35 Dec 30 00:27 ftpclient.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver2.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver3.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver4.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver5.txt
-rw-rw-r--  1 talkit talkit        35 Dec 30 00:27 ftpserver.txt
drwx------  3 talkit talkit      4096 Dec 25 00:21 .gnupg
-rw-------  1 talkit talkit        35 Dec 29 06:34 .lesshst
drwxr-xr-x  3 talkit talkit      4096 Dec 25 00:21 .local
-rw-rw-r--  1 talkit talkit 338882654 Dec 21 05:26 mattermost-7.5.2-linux-amd64.tar.gz
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Music
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:28 notemptydir
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Pictures
-rw-r--r--  1 talkit talkit       807 Dec 25 00:12 .profile
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Public
-rw-r--r--  1 talkit talkit         0 Dec 28 06:43 .sudo_as_admin_successful
drwxrwxr-x  2 talkit talkit      4096 Dec 30 00:37 temp
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Templates
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Videos

위와 같이 나옵니다. 앞에 있었던 ftpserver1.txt 가 사라졌습니다. 

이번에는 *를 이용해서 지워 보겠습니다. 그래서 조금 더 파일을 만들어 보겠습니다. 

cp ftpserver.txt ftpserver11.txt
cp ftpserver.txt ftpserver12.txt
cp ftpserver.txt ftpserver13.txt
cp ftpserver.txt ftpserver14.txt
cp ftpserver.txt ftpserver15.txt
cp ftpserver.txt ftpserver21.txt
cp ftpserver.txt ftpserver22.txt
cp ftpserver.txt ftpserver23.txt
cp ftpserver.txt ftpserver24.txt
cp ftpserver.txt ftpserver25.txt
cp ftpserver.txt ftpserver31.txt
cp ftpserver.txt ftpserver32.txt
cp ftpserver.txt ftpserver33.txt
cp ftpserver.txt ftpserver34.txt
cp ftpserver.txt ftpserver35.txt

이정도 해보겠습니다. ^^

rm ftpserver2*.txt

위와 같이 명령어를 내려 보십시오.

ls -al
total 331124
drwxr-xr-x 17 talkit talkit      4096 Jan  3 03:33 .
drwxr-xr-x  3 root   root        4096 Dec 25 00:12 ..
-rw-------  1 talkit talkit      4624 Jan  1 07:21 .bash_history
-rw-r--r--  1 talkit talkit       220 Dec 25 00:12 .bash_logout
-rw-r--r--  1 talkit talkit      3771 Dec 25 00:12 .bashrc
drwxrwxr-x 11 talkit talkit      4096 Dec 28 06:51 .cache
drwx------ 12 talkit talkit      4096 Dec 29 06:10 .config
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Desktop
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Documents
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Downloads
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:28 emptydir
-rw-r--r--  1 talkit talkit        35 Dec 30 00:27 ftpclient.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver11.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver12.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver13.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver14.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver15.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver21.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver22.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver23.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver24.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver25.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver2.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver31.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver32.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver33.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver34.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver35.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver3.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver4.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver5.txt
-rw-rw-r--  1 talkit talkit        35 Dec 30 00:27 ftpserver.txt
drwx------  3 talkit talkit      4096 Dec 25 00:21 .gnupg
-rw-------  1 talkit talkit        35 Dec 29 06:34 .lesshst
drwxr-xr-x  3 talkit talkit      4096 Dec 25 00:21 .local
-rw-rw-r--  1 talkit talkit 338882654 Dec 21 05:26 mattermost-7.5.2-linux-amd64.tar.gz
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Music
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:28 notemptydir
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Pictures
-rw-r--r--  1 talkit talkit       807 Dec 25 00:12 .profile
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Public
-rw-r--r--  1 talkit talkit         0 Dec 28 06:43 .sudo_as_admin_successful
drwxrwxr-x  2 talkit talkit      4096 Dec 30 00:37 temp
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Templates
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Videos
talkit@ubuntu:~$ rm ftpserver2*.txt
talkit@ubuntu:~$ ls -al
total 331100
drwxr-xr-x 17 talkit talkit      4096 Jan  3 03:33 .
drwxr-xr-x  3 root   root        4096 Dec 25 00:12 ..
-rw-------  1 talkit talkit      4624 Jan  1 07:21 .bash_history
-rw-r--r--  1 talkit talkit       220 Dec 25 00:12 .bash_logout
-rw-r--r--  1 talkit talkit      3771 Dec 25 00:12 .bashrc
drwxrwxr-x 11 talkit talkit      4096 Dec 28 06:51 .cache
drwx------ 12 talkit talkit      4096 Dec 29 06:10 .config
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Desktop
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Documents
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Downloads
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:28 emptydir
-rw-r--r--  1 talkit talkit        35 Dec 30 00:27 ftpclient.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver11.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver12.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver13.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver14.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver15.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver31.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver32.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver33.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver34.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver35.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver3.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver4.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver5.txt
-rw-rw-r--  1 talkit talkit        35 Dec 30 00:27 ftpserver.txt
drwx------  3 talkit talkit      4096 Dec 25 00:21 .gnupg
-rw-------  1 talkit talkit        35 Dec 29 06:34 .lesshst
drwxr-xr-x  3 talkit talkit      4096 Dec 25 00:21 .local
-rw-rw-r--  1 talkit talkit 338882654 Dec 21 05:26 mattermost-7.5.2-linux-amd64.tar.gz
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Music
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:28 notemptydir
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Pictures
-rw-r--r--  1 talkit talkit       807 Dec 25 00:12 .profile
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Public
-rw-r--r--  1 talkit talkit         0 Dec 28 06:43 .sudo_as_admin_successful
drwxrwxr-x  2 talkit talkit      4096 Dec 30 00:37 temp
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Templates
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Videos

실행을 하면 위와 같이 2로 시작하는 아이들이 모두 사라졌습니다. 

자 그러면, 디렉토리를 한번 지워 보겠습니다. 

아무 옵션없이요 ^^

rm emptydir

저명령어를 내렸더니 아래와 같이 나옵니다.

rm emptydir
rm: cannot remove 'emptydir': Is a directory

디렉토리여서 못지원다. ^^

cp -r  emptydir emmptydir1
cp -r  emptydir emmptydir2
cp -r  emptydir emmptydir3
cp -r  emptydir emmptydir4
cp -r  emptydir emmptydir5

빈디렉토리르 조금 늘렸습니다. 

자 저 중에서 1번을 -d 옵션을 사용해서 지워 보겠습니다. 

rm -d emptydir1

emptydir1이 없어진 모습은 아래 실행 결과에서 확인 할 수 있습니다. 

ls -al
total 331120
drwxr-xr-x 22 talkit talkit      4096 Jan  3 03:38 .
drwxr-xr-x  3 root   root        4096 Dec 25 00:12 ..
-rw-------  1 talkit talkit      4624 Jan  1 07:21 .bash_history
-rw-r--r--  1 talkit talkit       220 Dec 25 00:12 .bash_logout
-rw-r--r--  1 talkit talkit      3771 Dec 25 00:12 .bashrc
drwxrwxr-x 11 talkit talkit      4096 Dec 28 06:51 .cache
drwx------ 12 talkit talkit      4096 Dec 29 06:10 .config
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Desktop
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Documents
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Downloads
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:37 emmptydir1
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:37 emmptydir2
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:37 emmptydir3
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:37 emmptydir4
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:38 emmptydir5
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:28 emptydir
-rw-r--r--  1 talkit talkit        35 Dec 30 00:27 ftpclient.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver11.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver12.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver13.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver14.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver15.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver31.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver32.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver33.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver34.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver35.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver3.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver4.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver5.txt
-rw-rw-r--  1 talkit talkit        35 Dec 30 00:27 ftpserver.txt
drwx------  3 talkit talkit      4096 Dec 25 00:21 .gnupg
-rw-------  1 talkit talkit        35 Dec 29 06:34 .lesshst
drwxr-xr-x  3 talkit talkit      4096 Dec 25 00:21 .local
-rw-rw-r--  1 talkit talkit 338882654 Dec 21 05:26 mattermost-7.5.2-linux-amd64.tar.gz
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Music
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:28 notemptydir
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Pictures
-rw-r--r--  1 talkit talkit       807 Dec 25 00:12 .profile
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Public
-rw-r--r--  1 talkit talkit         0 Dec 28 06:43 .sudo_as_admin_successful
drwxrwxr-x  2 talkit talkit      4096 Dec 30 00:37 temp
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Templates
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Videos
talkit@ubuntu:~$ rm -d emmptydir1
talkit@ubuntu:~$ ls -al
total 331116
drwxr-xr-x 21 talkit talkit      4096 Jan  3 03:38 .
drwxr-xr-x  3 root   root        4096 Dec 25 00:12 ..
-rw-------  1 talkit talkit      4624 Jan  1 07:21 .bash_history
-rw-r--r--  1 talkit talkit       220 Dec 25 00:12 .bash_logout
-rw-r--r--  1 talkit talkit      3771 Dec 25 00:12 .bashrc
drwxrwxr-x 11 talkit talkit      4096 Dec 28 06:51 .cache
drwx------ 12 talkit talkit      4096 Dec 29 06:10 .config
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Desktop
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Documents
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Downloads
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:37 emmptydir2
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:37 emmptydir3
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:37 emmptydir4
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:38 emmptydir5
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:28 emptydir
-rw-r--r--  1 talkit talkit        35 Dec 30 00:27 ftpclient.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver11.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver12.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver13.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver14.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver15.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver31.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver32.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver33.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver34.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:33 ftpserver35.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver3.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver4.txt
-rw-rw-r--  1 talkit talkit        35 Jan  3 03:27 ftpserver5.txt
-rw-rw-r--  1 talkit talkit        35 Dec 30 00:27 ftpserver.txt
drwx------  3 talkit talkit      4096 Dec 25 00:21 .gnupg
-rw-------  1 talkit talkit        35 Dec 29 06:34 .lesshst
drwxr-xr-x  3 talkit talkit      4096 Dec 25 00:21 .local
-rw-rw-r--  1 talkit talkit 338882654 Dec 21 05:26 mattermost-7.5.2-linux-amd64.tar.gz
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Music
drwxrwxr-x  2 talkit talkit      4096 Jan  3 03:28 notemptydir
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Pictures
-rw-r--r--  1 talkit talkit       807 Dec 25 00:12 .profile
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Public
-rw-r--r--  1 talkit talkit         0 Dec 28 06:43 .sudo_as_admin_successful
drwxrwxr-x  2 talkit talkit      4096 Dec 30 00:37 temp
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Templates
drwxr-xr-x  2 talkit talkit      4096 Dec 25 00:21 Videos
talkit@ubuntu:~$

잘 확인해보십시오.

그러면 notempdydir을 -d를 주고 지워 보겠습니다.

cp -r notemptydir notemptydir1
cp -r notemptydir notemptydir2
rm -d notemptydir1
rm: cannot remove 'notemptydir1': Directory not empty

일부러 디렉토리를 하나 더 만들고 지워 봤습니다. 

그랬더니 이번에는 비워 있지 않은 디렉토리랍니다.

원래는 notemptydir1에 들어가서 모든 파일을 지원 다음에 한칸 위에가서 -d로 파일을 지워야 합니다. 

한번 해보면 아래와 같습니다. 

 cd notemptydir1/
talkit@ubuntu:~/notemptydir1$ ls
ftpclient.txt  ftpserver1.txt  ftpserver2.txt  ftpserver3.txt  ftpserver4.txt  ftpserver5.txt  ftpserver.txt
talkit@ubuntu:~/notemptydir1$ rm *
talkit@ubuntu:~/notemptydir1$ cd ..
talkit@ubuntu:~$ rm -d notemptydir
rm: cannot remove 'notemptydir': Directory not empty
talkit@ubuntu:~$ rm -d notemptydir1

자 보이시나요 ^^

디렉토리 이동해서 지우고, 위로 이동해서 다시 디렉토리지우고 번거럽지요.

그걸 한번 해결 해주는 없션이 -r 입니다.

rm -r notemptydir2

1번은 제가 지워 버려서 ^^ 2번을 이제 한번 지워 보겠습니다. 

 rm -rv notemptydir2
removed 'notemptydir2/ftpserver5.txt'
removed 'notemptydir2/ftpclient.txt'
removed 'notemptydir2/ftpserver2.txt'
removed 'notemptydir2/ftpserver3.txt'
removed 'notemptydir2/ftpserver.txt'
removed 'notemptydir2/ftpserver4.txt'
removed 'notemptydir2/ftpserver1.txt'
removed directory 'notemptydir2'

일부러 v 옵션을 붙여서 해봤습니다. 그랬더니 지워지는 모습이 보이고 잘 지워집니다. 

그러면 남은 옵션이 -f 입니다. 

해보겠습니다. 

-f는 보통 -i 옵션이 알리아스로 주어져 있을때 같이 사용합니다. 그런데 우분투는 -i 가 없어서 ^^

그래서 -f 옵션을 실습해 보겠습니다. 

rm -rfv notemptydir

원래 지우려고 만든 디렉토리 들이라 ^^

 rm -rfv notemptydir
removed 'notemptydir/ftpserver5.txt'
removed 'notemptydir/ftpclient.txt'
removed 'notemptydir/ftpserver2.txt'
removed 'notemptydir/ftpserver3.txt'
removed 'notemptydir/ftpserver.txt'
removed 'notemptydir/ftpserver4.txt'
removed 'notemptydir/ftpserver1.txt'
removed directory 'notemptydir'

위와 같이 잘 지워 집니다. 

처음에는 제가 처음에 가르쳐 드린 방법으로 하시는게 좀 더 안전 합니다.

디렉토리 안의 파일 먼저 지우고 

위로 이동해서 파일 지우는 방법이요

하지만, 서버 디렉토리가 또 있을수도 있으니 ^^

익숙해지시면 -rfv 옵션을 잘 사용하셔야 합니다. 

정말 위험하니까요 ^^

리눅스는 휴지통이 있는 것도 아니어서 바로 지워진다고 생각하셔야 합니다. ^^

자나깨나 rm 조심입니다. ^^

감사합니다. 

Mattermost에 빠져 있다가 다시 리눅스 글입니다. ^^

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

일단 NGINX 관련 설정을 제외하고는 거의 끝났습니다. 

이제 Email 알림을 동작하도록 해보겠습니다. 

우선 Email은 메일서버가 있어야지 구동이 가능합니다. 

그래서 SMTP서버를 구축을 할 수도 있겠지만, SMTP서버를 구축 하려면, 

1. 고정IP

2. 도메인

3. 서버설정

4. 화이트리스트 등록

등을 진행 해야해서 패스하고, 단 회사에서 SMTP 서버를 미리 운영하고 계신다면 가능 합니다. ^^

여기서는 Google SMTP 서버를 활용하는 방법을 알려드리겠습니다. 

일단 System Console에 접속합니다. 

ENVRIONMENT에서 SMTP를 클릭해서 보시면 위와 비슷하지만, 다르게 되어 있을 겁니다. 

1) SMTP서버는 smtp.gmail.com으로 변경 합니다.

2) 포트는 587로 변경 합니다. 

3) Enable SMTP Authenication 을 true 로 당연히 변경 하셔야 하구요.

4) SMTP Server Username 을 gmail 아이디를 넣습니다. 

5) SMTP Server Password는 gmail 앱 비밀번호를 넣어야 하는데 잠시 뒤에 설명해 드리겠습니다. 

6) Connection Security는 STARTTLS를 선택 합니다. 

여기까지 선택하시면 SMTP 설정은 끝났습니다. 

Gmail 초창기에는 Gmail 패스워드로 밖에서 SMTP를 이용할 수 있었는데요. 지금은

안됩니다. 

Gmail SMTP 앱 비밀번호 설정하기

https://myaccount.google.com/

 

Google 계정

Google은 사용자마다 원하는 개인정보 보호 설정이 다르다는 사실을 인지하고 있습니다. 그래서 Google 계정에서는 사용이 간편한 컨트롤과 개인정보 보호 진단 같은 도구를 제공합니다. 이런 도구

www.google.com

Google 계정에 접속을 합니다. 

접속하셔서 왼쪽에 보안을 누르십시오.

Google에 로그인을 찾으셔서 앱비밀번호를 클릭 하십시오.

그러면 계정 비밀번호를 묻습니다.

로그인 하시구요.

저는 이미 생성해서 생성했다가 지워 버릴 것입니다. ^^

앱 선택이라고 되어 있는 콤보박스에서 메일,  기기선택에서 기타(맞춤기기)를 선택하시구요. 

생성 버튼을 누릅니다.

저기 안에 노란색 상자 안에 비밀번호가 있습니다. 복사를 하십시오.

System Console의 SMTP Server Password 란에 붙여 넣으시면 됩니다. 

이게 16자리 비밀번호 이고 16자라가 다 붙어 있습니다. 복사하면 구글에서 자동으로 해주는 것 같습니다. 

그리고 저장하신 다음에 Test Connection을 눌러 보시면 저는 잘 접속이 되었습니다. 

그러면 된 것입니다. 

 알람 설정하기

이제 System Console의 SITE CONFIGURATION 메뉴에서 Notifications를 클릭하십시오.

위 그림과 같이 만들어야 합니다. 

1) Show 블라블라는  true

2) Enable Email Notification 은 true 당연하겠지만, 위의 SMTP설정을 하지 않으면 불가능 합니다. 

3) Notification Display Name 은 저는 그냥 소프트웨어 이름 + Notification으로 했습니다. 

4) Address 로 끝나는 아이들은 전부 제 개인메일로 설정 했습니다. 지인 또는 가족들하고 쓸꺼라서요 ^^

Push Notification Contents는 Full 블라블라로 선택해두었습니다. 

그리고 Save 해주시면 됩니다. 

설정을 하고 저렇게 쳤습니다. ^^

오 예쁘게 메일이 왔습니다. ^^

그런데 ,^^  Footer 부분을 조금 손을 대야 할 것 같습니다. 

저주소를 바꾸는 부분이 없네요 조금 살펴 봐야 할 것 같습니다. 

여기까지 되셨으면 잘 된겁니다. 

감사합니다. 

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

리눅스/Linux Slack 대체 프로그램 Mattermost를 설치해보자. How to install Mattermost on Ubuntu Linux https://talkit.tistory.com/695

위글에 이어서 ^^ 지금 현재 저는 성공 했습니다. 위에 보이시겠지만, ^^

https 모드로 동작하고 있습니다. 

지금 현재 조금 더 공부해야 할 것은 NGINX 프록시로 설정하는 부분입니다. 이부분은 또 성공 하면 글을 쓰도록 하고 제가 성공한 부분이 mattermost를 직접 https로 운영하는 것을 알려 드리겠습니다. 

1. 우선, 도메인을 하나 사셔야 합니다. 

요즘 저는 https://www.hosting.kr 에서 도메인을 구매하고 있습니다. 저렴 합니다. ^^

2. certbot라는 프로그램을 깔아야 합니다. 

무료 SSL 인증서인 Let's Encrypt 스크립트를 이용해서 진행할 계획이어서 certbot을 설치 해야 합니다. 

sudo apt update
sudo apt install certbot python3-certbot-nginx

NGINX는 안까셔도 될 것 같지만, ^^

저는 궁극적으로 nginx위에 https를 올리고 mattermost를 운영하고 싶어서 일단 설치 했습니다. 

3. http로 성공한 mattermost에 접속 하셔서 다음과 같이 설정 합니다. 

System Console에 접속 하셔야 하구요.

ENVIRONMENT > Web Server 항목의 내용은 변경 해야 합니다. 

1) Site URL을 https://구매한도메인:443 으로 변경하시고

2) Listen Address를 :443으로 변경 하십시오.

3) Fordward port 80 to 443 을 true로

4) Connection Security를 TLS로 변경 하십시오.

5) Use Let's Encrypt를 true로 변경하십시오.

일단 이렇게 하시면 끝입니다. 

그리고 맨 아래에 Save 버튼을 클릭 합니다. 

sudo setcap cap_net_bind_service=+ep /opt/mattermost/bin/mattermost

위 명령어를 이용해서 mattermost가 1000번대 이하의 포트에서 실행 되도록 바꾸줍니다. 

저는 이것 때문에 한동한 고생했습니다. 고생하지 마시기를 저도, 매뉴얼을 제대로 안읽는 스타일이라서 ^^

sudo systemctl restart mattermost

mattermost를 재시작 또는 시작 해주시면 됩니다. 

그러면, 설치가 잘 될 것으로 생각 됩니다. 

이게 NGINX하고 충돌이 일어 납니다. 이건 아직 해결을 못했습니다. 

NGINX가 깔려 있지 않는 곳에서 운영 가능 합니다. 

일단 NGINX를 안쓰시면 ^^ 

sudo systemctl stop nginx
sudo systemctl disable nginx

위명령어로 nginx를 끄고, 자동실행이 안되게 하십시오.

Mattermost만 운영할때이고, 다른 사이트와 같이 운영해야하면 일단 저는 http로 사용하시는 것을 권해 드려야겠네요.

NGINX 관련 설정이 성공하면 다시 글을 작성하겠습니다. 

감사합니다. 

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

오늘은 NGINX의 SSL 설정 마지막 입니다. 

일반적으로 저는 아파치에 SSL설정을 많이 했습니다. 

그런데 무료로 한게 아니고 대부분 돈을 내고 인증서를 샀습니다. 그리고 1년에 한번 갱신하는 형태로 진행을 했습니다. 

그런데, Let's Encrypt는 무료이고 3개월에 한번씩 갱신을 해줘야 합니다. 

 Crontab의 사용법

오늘은 간단한 사용법을 알려 드리고, Crontab 만으로 다른 글을 하나 더 적도록 하겠습니다. 

crontab에 스케쥴을 등록해보자. 

sudo crontab -e

음 위 명령어를 입력 합니다. 

 sudo crontab -e
[sudo] password for talkit:
no crontab for root - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.tiny
  3. /bin/ed

Choose 1-3 [1]:

crontab 을 처음 수행하면 무슨 편집기로 편집 할꺼냐고 묻습니다. 

저희는 vi를 쓸줄 안다고 생각하고 ^^

2번을 선택 합니다. ^^

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
~
~
~
~

위와 같이 나올껍니다. 

vi는 계속 알려 드려야 하는데 일단 

:$를 입력하시고 엔터 치십시오

그러면 맨 마지막줄로 갈껍니다. 

그리고 o 키를 누르신 다음

0 5 * * * /usr/bin/certbot renew --quiet

요렇게 해주면 인증서 만료일이 30일이내면 자동으로 매일 새벽 5시에 인증서를 갱신합니다. 자동 갱신 후에는 다시 30일이 남아야 갱신을 하겠죠 ^^

그런데, 여기서 힌트를 하나 얻어야 합니다. 

저 같은경우는 늘 컴퓨터를 켜두는 편이긴 한데 켜두질 않는 경우는 수동으로 하면 되겠지요 ^^

수동 재 갱신도 

/usr/bin/certbot renew

이렇게 해주면 될 것 같습니다. ^^

글을 적을 꺼리가 많아져서 좋네요 ^^

오늘은 여기까지 하구요.

또 다음 글에서 뵙겠습니다. 

감사합니다. 

 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다. 

NGINX 관련 문서들을 열심히 적고 있습니다. 

오늘은 위 그림에서 보이는 Not secure를 해결하고자 합니다. 

선행과정

리눅스 설치하기

리눅스/Linux VMWARE에 우분투/Ubuntu 20.04 설치하기/Install https://talkit.tistory.com/677

리눅스/Linux VMWARE에 우분투/Ubuntu 18.04 설치하기/Install https://talkit.tistory.com/637

위두 글을 이용해서 VMWARE에 리눅스를 설치 하십시오.

NGINX 설치하기 

리눅스/Linux 우분투에 NGINX Web server 설치하기 How to install NGINX Web server on Ubuntu Linux.  https://talkit.tistory.com/700 

위글을 참고 하시면 됩니다. 

도메인 이름 구매하기

https://www.hosting.kr 

 

글로벌 IT 파트너 - 호스팅케이알(HK)

KISA 고객만족도 최다 선정, 도메인 최저가 제공, 기업/공공도메인, 도메인연결/웹호스팅 무료, 서버, 아마존클라우드(AWS), G Suite, 홈페이지제작 1644-7378

www.hosting.kr

요즘 저기가 도메인이 저렴 한 것 같습니다. 

저는 어제 도메인을 하나 구매 했습니다. ^^

SSL이 IP(아이이) 기반으로 인증이 안되기 때문에 도메인을 구매 하셔야 합니다. 

NGINX 서버블락(Server Block) 설정

리눅스/Linux NGINX 웹서버 설정하기 How to configure NGINX Documents Files.  https://talkit.tistory.com/701

제 글을 계속 읽고 계신다면, 위 글이 서버 블락에 대해서 설명하고 있습니다. 

example.com 대신에 구매하신 도메인 관련 서버블락으로 만드시면 됙, default를 지우셨듯이 example.com 파일을 지우고 새로운 파일을 넣으시면 됩니다. ^^

그러면 이제 실제로 우리가 하고자는 SSL 설정을 시작 해보겠습니다. 

Let's Encrypt를 통한 SSL 설정하기

Certbot를 설치 합니다. 

sudo apt update

습관적으로 계속 한다고 생각 하시면 되구요.

sudo apt install certbot python3-certbot-nginx

서트봇 관련 패키지와 플러그인을 설치 합니다. 

저는 설치가 잘되었습니다. 이번에는 너무 길이서 ^^

server_name example.com www.example.com;

서버네임을 변경하는 과정인데 저는 도메인을 하나 따서 진행 합니다.  example.com 대신에 제 실제 도메인을 넣었습니다. 

여러분들도 실제로 구매하신 도메인을 넣어셔야 합니다. 

혹시 DNS 설정과 관련된 문제는 제가 다른 글에서 한번 써보겠습니다. 

방화벽 설정

이번에도 생략 합니다. ^^

SSL/TLS 인증서 획득하기

sudo certbot --nginx -d example.com -d www.example.com
 sudo certbot --nginx -d example.com -d www.example.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for example.com
Waiting for verification...
Challenge failed for domain example.com
http-01 challenge for example.com
Cleaning up challenges
Some challenges have failed.

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: example.com
   Type:   connection
   Detail: 공인아이피: Fetching
   http://example.com/.well-known/acme-challenge/f8kAgZFm0jvoMhu3mbtN5F7IS7B7xcXupFP1XN7C-NU:
   Timeout during connect (likely firewall problem)

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address. Additionally, please check that
   your computer has a publicly routable IP address and that no
   firewalls are preventing the server from communicating with the
   client. If you're using the webroot plugin, you should also verify
   that you are serving files from the webroot path you provided.
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.

저는 집에 있는 컴픀터에 SSL인증 중이라서 ^^ 오류가 나네요 T.T 제가 보안 때문에  몇가지 검사를 위해서 서버에 접속을 했는데 접속이 안된답니다. ^^

그래서 저는 IP타임 공유기의 설정을 변경해서 다시 아래 명령어를 수행 했습니다. 

 

 sudo systemctl restart nginx
talkit@ubuntu:~$ sudo certbot --nginx -d example.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/example.com

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/example.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2023-04-01. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

위와 같이 성공 했습니다. 

오 ^^

오 저 앞에 Not secure가 없어졌습니다. ^^

이번 글은 여기까지 하고, 다음글에서는  Let's Encrypt의 갱신 자동화에 대해서 글을 또하나 적어보고, 또한 도메인 구매와 도메인 설정(DNS)에 관해서 알아보겠습니다. 

감사합니다. 

반응형
반응형

안녕하세요 가야태자 @talkit 입니다.

리눅스/Linux 우분투에 NGINX Web server 설치하기 How to install NGINX Web server on Ubuntu Linux. https://talkit.tistory.com/700

앗 지난 번 글이 블로그에 700번째 글이었네요 ^^

요즘 블로깅을 열심히하고 있습니다.

NGINX 설정파일 위치

/etc/nginx/sites-available

우분투의 경우 nginx의 설정파일을 저기 들어 있습니다.

sudo vi /etc/nginx/sites-available/default

기본적으로 default라는 파일이 설치하면 존재 합니다.

그래서 저도 한번 열어 보겠습니다.

# Default server configuration
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }
}

일단 SSL이라든지 여러가지 설정이 주석으로 정의 되어 있습니다만, 주석부분은 대부분 지워 버리면 실제로 위와 같은 결과만 나옵니다. ^^

default 서버는 80번 포트에서 대기 중이구요. /var/www/html 폴더에 html 파일이 있습니다.

그리고 시작 파일은 index.html, index.htm, index.nginx-debian.html 이 시작 파일 입니다.

default를 없애고, example를 만들어 보도록 하겠습니다. 저는 앞으로 여기서 mattermost를 만들어야겠지요 ^^ 아닌가 mattermost는 나중에 ^^

sudo mkdir /var/www/example

example 디렉토리를 웹 홈에 만들구요.

sudo vi /var/www/example/index.html

index.html 파일을 생성 합니다. 

리눅스/Linux vi/vim NIX에서 가장 유명한 텍스트 편집기 - 글쓰기. One of the best text editor on NIX fields. - Writing https://talkit.tistory.com/699

위 글을 보시면 vi로 글쓰는 방법이 나와 있습니다. ^^ 

<html>
	<body>
	NGINX 테스트 웹페이지에 오신 것을 환영합니다.
	<body>
</html>

위 코드를 index.html에 붙여 넣으십시오. 저장하고 나오시면 됩니다. 

:wq 안 잃어버리셨죠 ^^

sudo vi /etc/nginx/sites-available/example.com

example.com 블락을 만들기위해서 파일을 하나 만들겠습니다. 

server {
listen 80;
root /var/www/example;
index index.html;
server_name 127.0.0.1;
}

위 내용을 붙여 넣으시고, 저장 합니다. 

sudo rm -f /etc/nginx/sites-enabled/default

sites-enabled에서 default 링크를 삭제 합니다. 

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled

음 example.com을 sites-enabled 폴더에 링크를 걸어 줍니다. 

sudo systemctl restart nginx

nginx를 재시작해 줍니다. 

sudo systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-01-01 00:30:21 PST; 10s ago
       Docs: man:nginx(8)
    Process: 3211 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 3212 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 3213 (nginx)
      Tasks: 17 (limit: 19071)
     Memory: 13.6M
     CGroup: /system.slice/nginx.service
             ├─3213 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ├─3214 nginx: worker process
             ├─3215 nginx: worker process
             ├─3216 nginx: worker process
             ├─3217 nginx: worker process
             ├─3218 nginx: worker process
             ├─3219 nginx: worker process
             ├─3220 nginx: worker process
             ├─3221 nginx: worker process
             ├─3222 nginx: worker process
             ├─3223 nginx: worker process
             ├─3224 nginx: worker process
             ├─3225 nginx: worker process
             ├─3226 nginx: worker process
             ├─3227 nginx: worker process
             ├─3228 nginx: worker process
             └─3229 nginx: worker process

Jan 01 00:30:21 ubuntu systemd[1]: Starting A high performance web server and a reverse proxy server...
Jan 01 00:30:21 ubuntu systemd[1]: Started A high performance web server and a reverse proxy server.

재시작 했으면 상태도 한번 확인해주시고 ^^

브라우져에서 확인을 하면

저같은 경우는 위와 같이 나옵니다. ^^

잘 만들어서 잘 구동이 되고 있네요 ^^

오늘은 여기까지 하겠습니다. 제 목표는 저기 Not secure 없애는 거여서  다음글 또는 그 다음 글에서 아마 가능 할 것으로 생각 됩니다. ^^

감사합니다.

 

반응형

+ Recent posts