* 개요 : 디렉토리를 백업하는 경우 해당 디렉토리 내부에 있는 특정 디렉토리를 제외하고 tar.gz 압축을 하는데 에러가 발생함.
* 에러메시지 :
tar: The following options were used after any non-optional arguments in archive create or update mode. These options are positional and affect only arguments that follow them. Please, rearrange them properly.
tar: --exclude `./test/result' has no effect
tar: 앞서 발생한 오류로 실패 코드를 반환하며 빠져나감
위와 같이 디렉토리와 파일이 있는데 test라는 디렉토리를 압축하고 result 라는 디렉토리를 제외하고 싶은 경우 아래와 같이 명령어를 구성한다.
tar -zcvf test.tar.gz --exclude="result" test/
tar -zcvf test.tar.gz --exclude="apple/result/" test/ // 제외하려는 디렉토리가 2depth 인 경우
tar -zcvf test.tar.gz --exclude="apple/result/" --exclude="apple/recruit/" test/ // 제외하려는 디렉토리가 2개인 경우
록키 리눅스의 경우 압축하려는 디렉토리 위치가 맨 뒤로 와야되고 --exclude 명령어에 절대 경로를 사용하지 말고 압축하려는 디렉토리 내부의 제외하려는 디렉토리 경로만 정확하게 적어주면 된다.
리눅스가 계속 버전이 바뀌다 보니 centos 기준의 글들의 정보가 정확하지 않은 경우가 많은 것 같다...
* 개요 : 웹개발 시 보통 문자나 특수문자를 치환하는 경우 자바스크립트 정규식을 사용한다.
* 설명 : 정규식 형식에는 리터럴 표기법과 RegExp 함수의 생성자 함수를 사용하는 방법이 있는데 생성자 함수를 사용하면 동적으로 변하는 변수를 정규식으로 사용할 수 있다.
* 해결법 :
let arr = ['a', 'b'];
let reg;
let exp;
let str = 'abc';
// for문 내부에서
reg = `[^${arr[i]}` + ${arr[j]}]';
exp = new RegExp(reg, "gi");
str = str.replace(exp, '');
핵심은 키보드 느낌표(!) 왼쪽에 있는 ` 문자와 달러 + 중괄호 사용이다. 테스트 해보고 이해하고 사용해본다.
⊙ 개요 : 내가 가진 ASUS A52F 라는 오래전에 구입한 노트북이 있다. 여기에 록키 리눅스를 설치하기 위해 CENTOS 8을 설치하려고 하는데 네트워크 장치중 이더넷을 찾을 수가 없었다... 인터넷이 되어야 rpm이든 dnf든 작업을 할텐데.. 상당히 난감한 상황이다... 검색을 해봐도 도통 잘 나오지를 않는다. 이 문제는 예전에도 엄청 삽질을 하면서 해결을 했었는데 몇 개월 지나고 까먹고 또 삽질을 하고있었다..
⊙ 원인 : CENTOS 8에서 노트북 네트워크 카드(JMicron(R) JMC250 PCI-E Ethernet Adapter)의 장치가 너무 오래되서 자동 설치를 지원해주지 못해서 일어난 문제이다.
⊙ 해결방법 :
1. CENTOS 8 설치 시 10GB 짜리 USB로 ISO 파일을 준비 후 서버-GUI로 설치한다.
2. 서버-GUI로 설치하면 WIFI를 바로 사용할 수 있을 것이다.
3. 인터넷이 되는 윈도우 PC로 윈도우의 3DP 같은 ELREPO (http://elrepo.org/tiki/HomePage) 사이트에 접속한다. Download -> Asia-Pacific -> 아무 주소에 접속해도 되고 /elrepo/elrepo/el8/x86_64/RPMS/ 요 순서대로 마우스로 클릭하면 rpm 목록을 확인 할 수 있다. -> elrepo.noarch 문구로 검색해보면 2023년 4월 20일 기준(글을 다 작성하고 보니 그냥 WIFI 연결 상태에서 직접 파일들을 받아도 된다 -0-;;)
4개를 확인 할 수 있는데 가장 최신인 elrepo-release-8.3-1.el8.elrepo.noarch.rpm 파일을 다운로드 후에 centos를 설치한 USB에 본인만의 디렉토리를 생성하고 위에서 다운 받은 파일을 복사한다.
4. CENTOS에 USB를 다시 장착하고 findmnt 명령어를 이용해서 마운트 정보를 확인 후 본인이 편한 디렉토리에 받은 파일을 복사한다.(만약 5번에서 뭔가 문제가 발생하면 네트워크 카드와 관련된 파일도 복사한다. 본인의 경우 /elrepo/archive/elrepo/el8/x86_64/RPMS 경로의 kmod-jme-1.0.8-1.el8_2.elrepo.x86_64.rpm 파일, 본인 PC의 네트워크 카드 정보를 확인 후 찾아본다)
nmcli dev status
// or
nmcli con show
// 명령어를 사용하여 이더넷 nic의 DEVICE 명을 파악한다. 본인의 경우 ens5f5 였다.
nmcli con add con-name eth0 type ethernet ifname ens5f5
// eth0은 내마음대로 작명한 것이다.
// 위에서 알아낸 장치의 ens5f5와 동일한 것을 확인 할 수 있다.
nmcli con up eth0
// 드디어 장치를 활성화 시킨다.
7. 위 설정을 완료하면 잠시 bash가 먹통이 될 것이다. 잠시 기다리다가 X 윈도우 설정 네트워크에 들어가면 앞서 보이지 않았던 [유선] 항목이 보일 것이다. 톱니바퀴를 클릭 후 본인 IP및 기타 정보를 입력하고 끔 -> 켬 하면 드디어 인터넷에 연결된 것을 확인 할 수 있다.
⊙ 애필로그 : 완전히 같은 환경은 아니겠지만 나와 비슷한 문제를 만나는 분들에게 조금이라도 도움이 되었으면 좋겠다.. 벌써 이 문제로 몇번이나 삽질을 하는건지...
웹서핑을 하다가 한빛출판네트워크를 알게 되었고 IT 관련 도서를 구매하고 이벤트에 참여하는 등 한빛출판네트워크 사이트에 종종 접속하게 되었다.
그러던 중 혼공학습단 이라는 활동을 알게 되었다. 도서를 구매하고 해당 커리큘럼 과정에 맡게 스스로 학습하고 학습 결과를 개인 운영 SNS나 블로그 등에 올리는 이벤트이다.... 개인은 혼자 학습을 하고 출판사는 PR을 하는 등 서로 win-win 하는 과정이다....
아무튼 주력이 웹개발이다 보니 개인 업무에 내가 개인적으로 부족한 부분을 보완하는 중이어서 이 혼공 학습이라는 것에 실제로 집중해서 학습할 여력은 많이 부족했다...
돌이켜보면 역시 우려대로 조금 더 많이 곱씹고 테스트 해보고 유튜브 강의도 보고 했어야 했는데 속독으로 읽고 미션 완료하기 급급했던 것 같다.
비록 혼공 9기 활동은 오늘로 끝이났지만 혼자공부하는 데이터 분석은 나중에 시간을 내서 다시 공부를 하고 저자의 강의도 꼼꼼하게 볼 예정이다.
다음에 내가 흥미가 가는 분야가 생기고 그게 혼공학습과정에 포함이 되어 있으면 이번보다는 시간을 더 내서 잘 과정을 마쳐보고 싶다. 열심히해서 받는 상품권이 중요한게 아니라 내가 스스로 학습하는 습관을 만들고 더 나아가서 무엇인가에 관해서 지식을 습득한다, 안다는 것이 결코 녹록치 않은 것인데 그것을 제대로 잘 하면 스스로 뿌듯할 것 같다...