반응형

우선 당연하게도 https://github.com 에서 신규 가입을 해야한다.

모든 데이터를 저장/불러오기 할 때 Username과 Email이 필요하기때문에 본인임을 확인할 수 있는 계정으로 생성한다.

https://github.com

 

계정이 생성되면 저장소(repository)를 생성해야한다. 동시에 여러 개의 저장소를 만들 수 있기 때문에 규모가 크다면 프로젝트별로, 작다면 하나의 저장소 안에 폴더를 나누어 저장하는 것이 좋다.

 

Repository name이 앞으로 사용할 저장소 이름이다.

 

외부 인원이 접근하지 못하도록 Private로 설정하고 필요에 따라 README 파일 생성에 체크를 하도록 한다.

 

위와 같이 README가 포함된 저장소가 생성되었다.

 

저장소가 생성되었으니 리눅스 서버에서 스크립트를 저장하는 방법을 설명하겠다.

 

 

테스트를 위해 임의의 디렉토리 test를 생성하였다.

$ mkdir /test
$ cd /test
$ pwd
/test

 

생성된 폴더를 git 저장소로 사용하기위해 git init 명령어를 입력한다. 앞으로 해당 폴더 내에서 이뤄지는 변경사항을 저장할 수 있게 되었다. 그리고 테스트를 위한 새로운 파일 test.txt를 생성하였다.

$ git init
/test/.git/
$ touch test.txt
$ ll
total 0
-rw-r--r-- 1 root root 0 Jul 29 14:32 test.txt

 

git add test.txt는 test.txt 파일을 commit기위해 선별하는 과정이다. 저장소에 디렉토리내의 모든 파일을 저장하는 것이 아니고 선택된 파일들만 저장하기때문에 단계가 나뉘어져있다. 

 

불편해 보일 수 있지만 github의 장점이 버전관리임을 생각하면 매 번 모든 파일을 업데이트하는것은 오히려 불필요하다는 것을 알 수 있다. 물론 원한다면 -a 옵션을 사용하요 한 번에 모두 업데이트 할 수 있다.

 

git commit -m "test"는 add 명령어로 선택된 파일들을 하나의 패키지로 묶어준다. -m 은 묶음에 메모를 남기는 것이다.

$ git add test.txt
$ git commit -m "test"
[master (root-commit) 6c12673] test
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test.txt
$ git status
# On branch master
nothing to commit, working directory clean

 

저장소에 대한 업데이트가 필요하다. 앞으로 사용되는 "test" 라는 변수는 아래의 주소를 가리키게 될 것이다.

저장소를 새롭게 만들때마다 아래와 같은 작업이 최소 1회 필요하다.

git remote add test https://github.com/[UserName]/test

 

업로드를 하기 전에 git pull을 먼저 해야한다. 기존 저장소의 파일과 동기화가 이루어져야 업로드 할 수 있기 때문이다.

이 과정을 무시하고 싶다면 push과정에서 -f로 강제로 업로드 하는 방법이 있지만 추천하지 않는다.

$ git pull test master
 * branch            master     -> FETCH_HEAD
Merge made by the 'recursive' strategy.
 README.md | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

 

이제 test.txt파일을 포함하고있는 commit을 웹 저장소에 올려보자. git push test를하면 위에서 정의한 test 저장소에 commit을 업로드 한다.

git push test

 

test.txt파일이 업로드 된 것을 확인할 수 있다.

 

반응형

'Computer Science > linux' 카테고리의 다른 글

Jupyter notebook 설정  (0) 2020.11.03
Centos yum repo 변경  (0) 2020.08.03
Linux hosts 파일 변경  (0) 2020.07.14
hostname 변경  (0) 2020.07.14
Google Cloud SDK linux 설치  (0) 2020.05.26
반응형

/etc/hosts 파일 내에서 변경.

 

127.0.0.1 localhost.localdomain localhost 
::1 localhost6.localdomain6 localhost6 
8.8.8.8 testhost

 

파일 수정 후 곧 바로 적용된다.

 

ssh testhost 처럼 입력해도 ip 8.8.8.8 로 접속하게 된다.

반응형
반응형
#CentOS 6 
[root@localhost ~]# vi /etc/sysconfig/network 
HOSTNAME=myhost 

#CentOS 7 
[root@localhost ~]# hostnamectl set-hostname myhost

변경 후 ssh 재접속.

반응형
반응형

Google Cloud Platform에 올라와있는 데이터를 다운로드하기위해서 설치한다.

 

https://cloud.google.com/sdk/docs/downloads-yum?hl=ko

 

yum을 사용하여 설치(Red Hat 및 CentOS)  |  Cloud SDK 문서  |  Google Cloud

Cloud SDK는 Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 8, CentOS 7 시스템에 설치할 수 있는 패키지 형식으로 제공됩니다. 이 패키지에는 gcloud, gcloud alpha, gcloud beta, gsutil, bq 명령어만 포함됩니다. gcloud �

cloud.google.com

1. 링크에 쓰여져 있는대로 repository에 cloud SDK 정보를 업데이트 해주어야 한다.

sudo tee -a /etc/yum.repos.d/google-cloud-sdk.repo << EOM
[google-cloud-sdk]
name=Google Cloud SDK
baseurl=https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
       https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOM

 

2. Cloud SDK를 설치한다.

yum install google-cloud-sdk

 

3. 데이터를 다운로드 한다.

gsutil cp gs://gatk-best-practices/somatic-b37/* .

 

 

반응형
반응형

공용으로 사용하는 서버에서 리눅스에 설치된 tool들의 환경변수 변경은 버전관리가 까다롭다.

 

Environment Modules을 설치하면 이런 부분을 상당히 쉽게 처리할 수 있다.

 

관리자(또는 유저가 직접 해도 상관없다)가 프로그램들의 경로를 미리 설정해놓고 그때 그때 필요한 버전을 로드하여 환경 변수를 변화시킨다.

 

https://modules.readthedocs.io/en/latest/index.html

 

Environment Modules — Modules documentation

© Copyright 1996-1999 John L. Furlani & Peter W. Osel, 1998-2017 R.K.Owen, 2002-2004 Mark Lakata, 2004-2017 Kent Mein, 2016-2020 Xavier Delaruelle Revision 0e43e359.

modules.readthedocs.io

다운로드는 https://github.com/cea-hpc/modules git hub에서 다운받아 진행한다.

 

cea-hpc/modules

Environment Modules: provides dynamic modification of a user's environment - cea-hpc/modules

github.com

압축을 풀고 아래처럼 설치한다.

$ ./configure --prefix=/usr/share/Modules \
              --modulefilesdir=/etc/modulefiles
$ make
$ make install

modulfilesdir은 path가 설정되어 있는 파일이 위치하는 폴더이다. 

 

/etc/modulefiles/gcc/9.2.0 파일을 만들고 아래처럼 내용을 채운다.

#%Module1.0######################################################################
##
## GCC modulefile
##
proc ModulesHelp { } {
    puts stderr "\tThe GCC Module\n"
    puts stderr "\tThis module adds GCC directory to your path."
}

module-whatis   "adds `.' to your PATH environment variable"

conflict gcc

module load mpfr mpc gmp
#prereq gmp

prepend-path    PATH    /data/Tools/gcc/gcc-9.2.0/bin
prepend-path    PATH    /data/Tools/gcc/gcc-9.2.0/include
prepend-path    PATH    /data/Tools/gcc/gcc-9.2.0/share
prepend-path    LD_LIBRARY_PATH /data/Tools/gcc/gcc-9.2.0/lib
prepend-path    LD_LIBRARY_PATH /data/Tools/gcc/gcc-9.2.0/lib64
prepend-path    LD_LIBRARY_PATH /data/Tools/gcc/gcc-9.2.0/libexec

 

홈페이지 메뉴얼을 참고하면 되지만 필요한 부분만 언급하자면

 

modulefiles폴더 하위폴더로 gcc가 모듈의 이름이며 9.2.0이 버전이다.

 

module load gcc 또는 module load gcc/9.2.0 으로 로드 할 수 있으며 버전을 명시하지 않을 경우 숫자가 가장 높은 버전을 자동으로 로드한다.

 

conflict는 해당 모듈이름과 동시에 로드 할 수 없는 것으로 동일 프로그램의 여러 버전이 로드되는 것을 방지할 수 있다.

module load는 gcc 모듈을 사용하기위해 dependency가 있는 다른 모듈을 로드하는 것이다.

prereq는 해당 모듈이 있지 않으면 에러가 난다. 

prepend-path는 PATH의 앞에 해당 경로를 추가하는 것이다. 

반응형

'Computer Science > linux' 카테고리의 다른 글

hostname 변경  (0) 2020.07.14
Google Cloud SDK linux 설치  (0) 2020.05.26
계정, 그룹 생성, 추가 및 삭제  (0) 2020.02.24
Zip 압축하기 / 압축 해제하기  (0) 2020.02.24
crontab 사용하기  (0) 2020.02.21
반응형

useradd는 모든 설정을 지정해주어야하기때문에 adduser를 사용하기로 한다.

 

필요에따라 userid와 groupid를 넣어서 만들고 passwd userid를 입력하여 비밀번호도 지정한다.

 

adduser -u [id] -g [group] <userid>
passwd userid

 

userid와 groupid에 대한 정보는 아래 폴더에 존재한다.

/etc/passwd
user1:x:765:1000::/home/user1:/bin/bash 

/etc/group
user:x:999: 
guest:x:900:
test1:x:1000:user1,user2,user3
test2:x:1001:user2

passwd 파일 안에는 아이디, uid, groupid, home 폴더 위치 등이 존재한다. 

uid 또는 gid를 이 파일 내에서 수정해도 되지만 이럴 경우 이미 만들어진 폴더, 파일등에서도 gid 정보 등을 같이 수정해줘야하는 불편함이 있다.

처음 생성할 때 정하는것이 좋다.

 

group 파일 안에는 그룹 이름과 gid, 해당 그룹에 속하는 아이디 등이 존재한다.

user1, user2, user3 모두 test1 그룹에 속하며 user2는 test2 그룹에도 동시에 속한다.

 

 

 

 

 

반응형
반응형

zip으로 압축할 때 

경로내의 모든 하위 폴더도 압축하려면

zip -r newfile.zip /path/to/directory/

 

zip으로 압축 해제 할 때

 

원하는 파일들만 압축 해제

unzip a.zip b.zip c.zip

 

디렉토리 내의 모든 zip파일 해제

unzip '*.zip'

 

여러 파일을 압축 해제하는데 특정 폴더에 넣고 싶을 때

unzip '*.zip' -d /path/to/directory/

 

반응형
반응형

 

Linux에서 정해진 시간마다 작업을 하려면 crontab 명령어를 실행하면 된다.

 

주로 스크립트 백업에 사용하는 편이다.

 

명령어를 직접 입력해도 되고 shell 스크립트를 작성해서 해당 스크립트를 실행하도록 해도 된다.

 

(명령어 형식)
# crontab -l          ; 현재 예약된 작업 리스트를 보여줌
# crontab -e         ; 현재 예약된작업 리스트를 편집함
# crontab -r          : 현재 예약된 리스트를 지움


  분    시    날    달  요일   
0-59 0-23 1-31 1-12 0-7 명령어

 

아래 페이지를 참고하면 원하는 시간을 정확하게 구할 수 있을 것이다.


https://crontab.guru/

 

crontab.guru - the cron schedule expression editor

loading... Cron job failures can be disastrous! We created Cronitor because cron itself can't alert you if your jobs fail or never start. Cronitor is easy to integrate and provides you with instant alerts when things go wrong. Learn more about cron job mon

crontab.guru

 

 

crontab -e 를 치면 vi 가 실행되고 내용을 입력하고 저장,종료하면 된다.

 

 

반응형

'Computer Science > linux' 카테고리의 다른 글

계정, 그룹 생성, 추가 및 삭제  (0) 2020.02.24
Zip 압축하기 / 압축 해제하기  (0) 2020.02.24
su 와 su- 의 차이  (1) 2019.09.19
Linux 새 디스크 연결하기  (0) 2019.08.30
Centos7 네트워크 설정  (0) 2019.08.27
반응형

su (substitution user)는 리눅스 내에서 user를 바꾸는 명령어다.

 

su [user] 를 사용함으로 해당 유저로 변경 가능하다.

 

su는 user를 바꾸기만하고 대부분의 환경 변수는 이전 user의 것을 따라간다.

 

su-는 유저를 바꾼 후 다시 shell에 접속한다. 즉 환경변수가 새로운 user의 것으로 바뀐다.

 

번외로 su 이후에 user아이디를 입력하지 않으면 root로 접속하겠다는 의미이다.

반응형

'Computer Science > linux' 카테고리의 다른 글

Zip 압축하기 / 압축 해제하기  (0) 2020.02.24
crontab 사용하기  (0) 2020.02.21
Linux 새 디스크 연결하기  (0) 2019.08.30
Centos7 네트워크 설정  (0) 2019.08.27
도메인 이름을 IP 주소로 변환  (0) 2019.08.27
반응형

데이터 백업을 위해 외부 HDD를 연결하는데 새 HDD라면 파티션부터 다시 잡아줘야 할 필요가 있다.

 

먼저 연결이 제대로 되었는지 확인해야 한다.

 

fdisk -l


가장 마지막에 연결한 장치가 밑에 나오게 되며 대략 아래와 같은 형태를 가진다.

Disk /dev/sdb: 36002.0 GB, 36002026487808 bytes, 70316457984 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 262144 bytes / 1048576 bytes
Disk label type: gpt

해당 장치가 맞는지 용량을 보고 확인하자.

 

장치가 맞다면 파티션을 나누고 포맷을 해야한다.

 

parted /dev/sdb 

장치 명은 위에서 확인한대로 진행

 

(parted)mklabel gpt
(parted)mkpart primary 0 100%

Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel?
I

파티션을 여러개로 나눠서 따로 저장할 수 있지만 데이터 백업용 디스크는 그렇게 할 필요가 없다.

 

(parted)p

제대로 진행되었는지 확인

 

(parted)q

제대로 파티션이 나누어 졌다면 종료.

 

 

mkfs.ext4 -f /dev/sdb1

ext4 포맷으로 sdb장치의 1번 파티션을 포맷한다. 

 

 

 mount /dev/sdb1 /data

sdb장치의 1번 파티션을 /data 폴더에 마운트 시킨다.

 

 

반응형

'Computer Science > linux' 카테고리의 다른 글

crontab 사용하기  (0) 2020.02.21
su 와 su- 의 차이  (1) 2019.09.19
Centos7 네트워크 설정  (0) 2019.08.27
도메인 이름을 IP 주소로 변환  (0) 2019.08.27
비밀번호 없이 ssh로 로그인하기  (0) 2019.08.26

+ Recent posts