Jenkins 의 버전을 업데이트 하고 싶을때 수동으로 war 파일만 다운받아 교체하고 싶은경우 다음과 같이 진행한다.

  • 구동중인 Jenkins 중지
    • $ service jenkins stop

  • war 파일을 다운받아 다음 경로에 복사
    • $ sudo mv jenkins.war /usr/share/jenkins

  • Jenkins 재가동
    • $ service jenkins start

이후 업데이트된 버전의 Jenkins 가 반영되어 가동된다.

Posted by leechwin

Ubuntu 에서 SSD 카드 사용하려고 할때 가끔 Unable to mount.. 로 시작하는 에러가 발생하면서 SD 카드를 인식 못하는 경우가 있다.

원인은 SSD카드가 Windows 환경에서 포멧되어 사용중인 파일시스템을 리눅스에서 인지를 못하는 문제이다.

이 문제를 해결하려면 리눅스에 해당 파일 시스템을 인식 할 수 있는 모듈을 다음과 같이 설치하면 해결이 된다.

  • sudo apt-get install exfat-fuse

위의 모듈이 성공적으로 설치되면 SD 카드가 정상적으로 인식된다.

Reference: http://askubuntu.com/questions/664765/unable-to-mount-128gb-micro-sdxc-storage-card



Posted by leechwin

Jenkins Plugin 개발시에 빌드 패키징을 위한 maven 설치 방법


Ubuntu

  • Java가 설치되어 있고 JAVA_HOME 환경변수 설정이 되어 있어야 한다.
    •  export JAVA_HOME=/path/your/jdk
       export PATH=$JAVA_HOME/bin:$PATH

  • apt-get 을 통하여 설치
    • sudo apt-get install maven2
  • ~/.m2/settings.xml 파일을 수정하거나 없다면 새로생성 (윈도우는 %USERPROFILE%\.m2\settings.xml)
    • <settings>

        <pluginGroups>

          <pluginGroup>org.jenkins-ci.tools</pluginGroup>

        </pluginGroups>


        <profiles>

          <!-- Give access to Jenkins plugins -->

          <profile>

            <id>jenkins</id>

            <activation>

              <activeByDefault>true</activeByDefault> <!-- change this to false, if you don't like to have it on per default -->

            </activation>

            <repositories>

              <repository>

                <id>repo.jenkins-ci.org</id>

                <url>http://repo.jenkins-ci.org/public/</url>

              </repository>

            </repositories>

            <pluginRepositories>

              <pluginRepository>

                <id>repo.jenkins-ci.org</id>

                <url>http://repo.jenkins-ci.org/public/</url>

              </pluginRepository>

            </pluginRepositories>

          </profile>

        </profiles>

        <mirrors>

          <mirror>

            <id>repo.jenkins-ci.org</id>

            <url>http://repo.jenkins-ci.org/public/</url>

            <mirrorOf>m.g.o-public</mirrorOf>

          </mirror>

        </mirrors>

        <!-- 프록시 설정 -->

        <proxies>

          <proxy>

            <id>optional2</id>

            <active>true</active>

            <protocol>https</protocol>

            <host>[Proxy URL]</host>

            <port>[Port]</port> 

          </proxy>

        </proxies>

      </settings> 

  • 다음 명령을 통하여 필요한 패키지를 설치
    • $ mvn -U org.jenkins-ci.tools:maven-hpi-plugin:create
  • Jenkins Plugin 개발 경로에서 패키징 실행
    • $ mvn package


Reference: https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial

Posted by leechwin

Ubuntu 를 새로 설치하고 apt-get 등의 작업을 할때 Bad header line 이라는 에러와 함께 패키지 정보를 가져오지 못하고 에러가 발생하는 경우가 있다.

이때에는 apt-get clean 이후 apt-get update 등을 수행해도 제대로 동작하지 않는다.

이를 해결하기 위해서는 다음과 같이 수행한다.

  • Update Manger > Settings... > Ubuntu Software > Download from > Main Server
  • 아래의 명령으로 source list를 삭제한 후 새로 update를 수행
    • sudo rm -rf /var/lib/apt/lists/* && sudo apt-get update

위의 순서대로 수행하면 apt-get update 가 에러없이 수행된다.


만약 사내등에서 Proxy 를 쓰고 있다면 다음과 같이 proxy 설정을 해주어야 한다.

  • /etc/apt/apt.conf 파일에 해당 프록시 주소를 설정한다.
    • Acquire::http::Proxy "http://111.111.111.111:8080/"; Acquire::https::Proxy "https://111.111.111.111:8080/";

  • 이후 apt-get clean 과 apt-get update 를 수행한다.


Reference: http://askubuntu.com/questions/162782/apt-get-update-bad-header-line-on-all-udpates

Posted by leechwin

Bash Strict Mode

OS/Linux 2016.01.03 20:09

Bash Shell Script 작성시 다음과 같이 시작하면 안전한 스크립트를 작성 할 수 있다.

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
  • set -e 옵션
    • 첫번째 에러에서 스크립트를 취소(0이 아닌 상태로 종료하는명령어)하는 옵션
    • 스크립트 에러시 정상종료상태인 0을 리턴받아 다음 스크립트가 진행된다면 마지막 스크립트까지 진행되는 경우 원하지 않는 결과가 수행될 수 있다.
  • set -u 옵션
    • 정의 안 된 변수 사용시 에러 메세지 출력후 강제 종료하는 옵션
  • set -o pipefail 옵션
    • pipeline으로 실행된 경우 에러발생시 에러코드 및 메시지를 전달하는 옵션

Reference


Posted by leechwin

리눅스에서 sh 파일을 실행할때 가끔 다음과 같은 에러가 발생하는 경우가 있다.

  • /bin/bash^M: bad interpreter: No such file or directory

VI로 확인을 해보아도 스크립트내용은 이상이 없는데, 다음 명령어로 해당 sh 파일을 열어보도록 하자.

  • vi -b <file>

확인을 해보면 개행마다 ^M이라는 이상한 문자가 붙어있는 것을 볼 수 있다.

원인으로는 이 파일이 아마도 윈도우즈에서 생성되어서 개행마다 carriage return character 인 "^M"이 붙어서 리눅스에서 실행시 에러를 낸다.

참고로 윈도우즈의 개행은 CR LF 이고, 리눅스에서는 LF 이다.

  • CR (carriage return)
  • LF (line feed)
위의 해결책은 vi -b 로 진입하여 CR에 해당하는 "^M" 문자를 모두 삭제하거나, 리눅스에서 새로 파일을 만들어 작성하여 실행하면 제대로 동작한다.

vi 에서 수정시에는 다음을 참고한다.
  • :%s/^M$//
  • 참고로 ^M 문자는 Ctrl + V, Ctrl + M을 차례로 누르면 된다.



Posted by leechwin

Ubuntu 내 Dash home에서 약어로 프로그램을 찾아 실행하는 등의 작업을 할때, 프로그램을 삭제하였는데 메뉴에 남아있거나, 보이기 싫은 경우가 있다.



이럴때에는 다음 디렉토리에서 해당하는 프로그램을 찾아 삭제하면 Dash home에서 보이지 않게 된다.

  • /usr/share/applications
  • /usr/local/share/applications
  • /.local/share/applications
  • /.local/share/desktop-directories


'OS > Linux' 카테고리의 다른 글

Bash Strict Mode  (0) 2016.01.03
[Ubuntu] sh 파일 실행시 "/bin/bash^M" 에러가 발생하는 경우  (0) 2015.12.29
[Ubuntu] Dash home에서 불필요한 프로그램 shortcut 삭제  (0) 2015.12.24
[Shell] Bash shell 팁  (0) 2015.12.20
[Ubuntu] time  (0) 2015.12.20
[Ubuntu] disk usage  (0) 2015.12.20
Posted by leechwin

[Shell] Bash shell 팁

OS/Linux 2015.12.20 18:39

Bash Shell에서 편리한 팁들

  • Tab : argument 완성
  • Ctrl + R : command history 에서 검색
  • Ctrl + W : 마지막 단어 삭제
  • Ctrl + U : 라인 전체 삭제
  • Ctrl + A : 라인 시작점으로 이동
  • Ctrl + E : 라인 끝지점으로 이동
  • "cd -" : 이전 디렉토리로 이동


'OS > Linux' 카테고리의 다른 글

[Ubuntu] sh 파일 실행시 "/bin/bash^M" 에러가 발생하는 경우  (0) 2015.12.29
[Ubuntu] Dash home에서 불필요한 프로그램 shortcut 삭제  (0) 2015.12.24
[Shell] Bash shell 팁  (0) 2015.12.20
[Ubuntu] time  (0) 2015.12.20
[Ubuntu] disk usage  (0) 2015.12.20
UNIX TOOLBOX  (2) 2015.08.26
Posted by leechwin

[Ubuntu] time

OS/Linux 2015.12.20 18:04

특정 명령의 실행시간을 알고 싶을때 time 명령을 통해 확인 가능하다.

  • time [command]
  • ex) time du -sh * | sort -n -r


'OS > Linux' 카테고리의 다른 글

[Ubuntu] Dash home에서 불필요한 프로그램 shortcut 삭제  (0) 2015.12.24
[Shell] Bash shell 팁  (0) 2015.12.20
[Ubuntu] time  (0) 2015.12.20
[Ubuntu] disk usage  (0) 2015.12.20
UNIX TOOLBOX  (2) 2015.08.26
[Ubuntu] libssl-dev  (0) 2014.08.17
Posted by leechwin

[Ubuntu] disk usage

OS/Linux 2015.12.20 17:31

현재 디렉토리 혹은 하위의 디렉토리의 disk usage 관련 정보를 shell에서 du 명령을 통해 확인 가능하다.


Usage: du [OPTION]... [FILE]... 

    or:  du [OPTION]... --files0-from=F

Summarize disk usage of the set of FILEs, recursively for directories.


Mandatory arguments to long options are mandatory for short options too.

  -0, --null            end each output line with NUL, not newline

  -a, --all             write counts for all files, not just directories

      --apparent-size   print apparent sizes, rather than disk usage; although

                          the apparent size is usually smaller, it may be

                          larger due to holes in ('sparse') files, internal

                          fragmentation, indirect blocks, and the like

  -B, --block-size=SIZE  scale sizes by SIZE before printing them; e.g.,

                           '-BM' prints sizes in units of 1,048,576 bytes;

                           see SIZE format below

  -b, --bytes           equivalent to '--apparent-size --block-size=1'

  -c, --total           produce a grand total

  -D, --dereference-args  dereference only symlinks that are listed on the

                          command line

  -d, --max-depth=N     print the total for a directory (or file, with --all)

                          only if it is N or fewer levels below the command

                          line argument;  --max-depth=0 is the same as

                          --summarize

      --files0-from=F   summarize disk usage of the

                          NUL-terminated file names specified in file F;

                          if F is -, then read names from standard input

  -H                    equivalent to --dereference-args (-D)

  -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)

      --inodes          list inode usage information instead of block usage

  -k                    like --block-size=1K

  -L, --dereference     dereference all symbolic links

  -l, --count-links     count sizes many times if hard linked

  -m                    like --block-size=1M

  -P, --no-dereference  don't follow any symbolic links (this is the default)

  -S, --separate-dirs   for directories do not include size of subdirectories

      --si              like -h, but use powers of 1000 not 1024

  -s, --summarize       display only a total for each argument

  -t, --threshold=SIZE  exclude entries smaller than SIZE if positive,

                          or entries greater than SIZE if negative

      --time            show time of the last modification of any file in the

                          directory, or any of its subdirectories

      --time=WORD       show time as WORD instead of modification time:

                          atime, access, use, ctime or status

      --time-style=STYLE  show times using STYLE, which can be:

                            full-iso, long-iso, iso, or +FORMAT;

                            FORMAT is interpreted like in 'date'

  -X, --exclude-from=FILE  exclude files that match any pattern in FILE

      --exclude=PATTERN    exclude files that match PATTERN

  -x, --one-file-system    skip directories on different file systems

      --help     display this help and exit

      --version  output version information and exit 


  • ex) 현재 디렉토리의 하위 디렉토리의 용량을 순서대로 조회
    • du -sh * | sort -n -r


'OS > Linux' 카테고리의 다른 글

[Shell] Bash shell 팁  (0) 2015.12.20
[Ubuntu] time  (0) 2015.12.20
[Ubuntu] disk usage  (0) 2015.12.20
UNIX TOOLBOX  (2) 2015.08.26
[Ubuntu] libssl-dev  (0) 2014.08.17
[Ubuntu] build-essential  (0) 2014.08.17
Posted by leechwin