000001) 


1.  swap(2,048)  -> 10,000
2.  /boot(100)   ->  2,000(첫번째 파티션으로 만듦, 체크)
3.  /(3,072)     -> 12,000
4.  /usr(8,192)  -> 70,000
5.  /usr2(90,000)-> 90,000                               -> 120,000
6.  /var(4,096)  -> 12,000
7.  /tmp(4,096)  -> 12,000
8.  /data(70,000)-> 70,000
9.  /home(2,000) ->  2,000
10. /web(나머지 부분을 할당, 체크)

000001) Telnet
sudo apt-get install telnetd xinetd -y

service telnet
{
    disable         = no
    flags           = REUSE
    socket_type     = stream
    wait            = no
    user            = root
    server          = /usr/sbin/in.telnetd
    log_on_failure  += USERID
}

sudo /etc/init.d/xinetd restart

00004)
by root
mkdir /usr2/sinfo

00005)
groupadd other
useradd -d /usr2/sinfo -g other -s /bin/bash sinfo
passwd sinfo

00006)
cd /usr2
chown -R sinfo:other sinfo

00007)
apt update -y
apt-get install vsftpd

>>vsftpd.conf 파일 수정
vi /etc/vsftpd.conf
# Uncomment this to enable any form of FTP write command.
write enable=YES

>>vsftpd 서비스 재시작
/etc/init.d/vsftpd restart

00008)

apt-get update

apt-get install make
apt-get install gcc
apt-get install g++ 
apt-get install net-tools
apt-get install curl
apt install pkg-config

apt-get install cmake
apt-get install libssl-dev
apt-get install libexpat1-dev
apt-get install libboost-all-dev
apt-get install libncurses5-dev libncursesw5-dev

1. MySQL 다운로드 (경로: /usr/local)
$ cd /usr/local
$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.25.tar.gz
$ tar xvfz mysql-8.0.25.tar.gz

$ cd /usr/local/src/
$ wget https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.gz
$ tar xvfz boost_1_73_0.tar.gz

2.설치
$ cd /usr/local/mysql-8.0.25
$ rm -f CMakeCache.txt
$ mkdir tmp_mysql(USER ADD DIRECTORY)
$ cd tmp_mysql(USER ADD DIRECTORY)
$ cmake \
.. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/src/boost_1_73_0
$ make
$ make install

3.MySQL DB 초기화
(1)그룹 지정

$ groupadd mysql
$ useradd -r -g mysql -s /bin/false mysql
그룹과 유저를 만들어야 한다.

-r : system account
-g : 그룹 지정
-s : user의 로그인 shell

(2) 디렉토리 생성

$ cd /usr/local/mysql
$ mkdir mysql-files
편한 이름의 디렉토리를 만들어 준다.

(3)권한주기

$ chown -R mysql:mysql /usr/local/mysql
$ chown mysql:mysql mysql-files
$ chmod 750 mysql-files
chown: 파일의 소유자를 변경

-R : 하위 디렉토리까지 소유권 할당

chmod : 사용권한을 변경

(4)기본 DB 생성

$ bin/mysqld --initialize --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

임시비밀번호가 나온다.
이 비밀번호는 나중에 써야하니 잘 기억해두자!
root@localhost : hYyR#f#D1ZCb

아래 명령어로 mysql로 전환한다.

$ bin/mysql -u root -p
명령어를 치면 비밀번호를 입력하게 되는데 아까 받은 초기 비밀번호를 입력하면 된다.

(2) 비밀번호 할당하기

mysql>alter user 'root'@'localhost' identified by '원하는 비밀번호';
mysql>flush privileges;
mysql>commit;

(3) 서버 종료


이때 비밀번호가 잘 변경됬는지 확인하면 된다.

5.MySQL 서비스 등록
서비스를 등록하면 서버가 실행되었을 때, mysql 이 자동으로 실행된다.

mysqld 파일을 복사한다.

$ sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
mysqld 파일을 열어서 basedir 와 datadir 를 설정한다.

$ sudo vi /etc/init.d/mysqld


basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
mysqld 서비스를 등록한다.

$ update-rc.d mysqld defaults
reboot로 다시 시작한 뒤 보면 서버시작 안 해도 서버 시작이 되어있음을 확인할 수 있다.

$ reboot 
$ ps -ef | grep mysqld

/*----------------------------------------------------------*/



create database stockDB;
flush privileges;


백업)
/usr/local/mysql/bin/mysqldump -u root -p mysql > mysql_db.sql
(mysql>root계정까지 백업되므로, root패스워드가 원복시에 바뀌어버린다. 주의해야 한다.)
(mysql>root계정까지 백업되므로, root패스워드가 원복시에 바뀌어버린다. 주의해야 한다.)

원복)
/usr/local/mysql/bin/mysql -u root -p mysql < mysql_db.sql
(mysql>root계정까지 백업되므로, root패스워드가 원복시에 바뀌어버린다. 주의해야 한다.)
/usr/local/mysql/bin/mysql -u root -p stockDB < stockDB_db.sql

Install gcc downgrade)
add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ trusty main'
add-apt-repository 'deb http://archive.ubuntu.com/ubuntu/ trusty universe'
apt install gcc-4.7 g++-4.7 -y

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 10

비고)
update-alternatives --config gcc
update-alternatives --config g++

Compile)

root@stock:~# gcc --version
gcc (Ubuntu/Linaro 4.7.3-12ubuntu1) 4.7.3
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

root@stock:~#

PATH설정)

sinfo@stock:~/exe$ ./Batch
./Batch: error while loading shared libraries: libmysqlclient.so.21: cannot open shared object file: No such file or directory
sinfo@stock:~/exe$
sinfo@stock:~/exe$


root@stock:/usr/local# find ./ -name libmysqlclient.so.21
./mysql/lib/libmysqlclient.so.21
root@stock:/usr/local#

즉 /usr/local/mysql/lib 디렉토리를 /etc/profile에 추가시켜주면 됩니다. 혹은 개인계정 profile에 추가해도 무방

# vi /etc/profile
export LD_LIBRARY_PATH=/usr/local/mysql/lib/:LD_LIBRARY_PATH

100_partition_user_add_info.txt
0.00MB
110_install_make_succ.txt
0.00MB

#Ubuntu 18.04 apache-tomcat-**** & apache2 설치및 연동

1. 설정1
root@stock:/usr/local/tomcat8/conf# which java
/usr/local/jdk1.8.0_202/bin/java
root@stock:/usr/local/tomcat8/conf#

JAVA_HOME=/usr/local/jdk1.8.0_202로 설정한다.

2. 설정2
<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/web/httpd/hexahtdocs" reloadable="true"/>
</Host>

3. 확인
http://19.168.0.37:8080
http://19.168.0.37:8080/common_sise/lower_rate.jsp?market=A


#install reference

 

apache_tomcat_9_install_guide.txt
0.01MB


#우분투 버전 역사
#LTS(Long Term Support)


우분투의 버전은 배포판이 나온 연도와 달로 매긴다. 
7.10은 2007년 10월, 8.04는 2008년 4월에 나온 버전이다. 
각 버전은 알파벳 순서로(6.06 LTS부터) 만든 형용사와 명사의 조합으로 코드명이 붙는다. 
7.10은 G에서 만든 Gutsy Gibbon이라는 이름이 붙으며, 
8.04는 H에서 Hardy Heron, 8.10은 I에서 Intrepid Ibex이다. 
처음 세개의 버전을 제외한 나머지 버전은 알파벳 순서로 명명되어서 사용자들이 버전 순서를 파악하는 데 용이하게 했다. 
LTS(Long Term Support)는 장기 지원 버전으로, 
4번에 한 번, 즉 원칙적으로 2년에 한 번씩 나온다. 
현재 가장 최신 버전의 LTS는 18.04이다. 10년간 장기지원한다.

manual.zip
1.56MB


각 버전별 지원 기간은 12.10까지는 1년 6개월이다. 
13.04부터는 9개월로 지원 기간이 단축되었지만 짝수 연도 상반기마다 나오는 장기지원버전(LTS)은 모든 버전을 늘어난 5년간 지원하도록 정책이 바뀌었다. 
처음에는 데스크톱판이 3년으로, 서버판이 5년으로 차별화되어 있었으나, 
12.04 버전부터 둘 다 5년으로 일원화돠었다. 
19LTS 버전부터는 10년간으로 늘어났다. 
이러한 정책의 밑바탕이 되는 주기적이고 장기적인 버전을 통한 LTS기술의 축적은 특별한 보안이 요구되는 금융등 산업계에서 장기적이고 안정된 IT 관리를 위한 매우 적절한 조처다.

#Linux Tettris 소스코드(배열모양:4 * 4)

#언어: c

#필요라이브러리:libncurses.a

#make link option: -lncurses

 

>원리

LEFT 이동시에 1보다 큰 값이 있으면 LEFT 이동이 불가능하다.

 

 

 

linux_tris_time_4_4.c
0.01MB

curses.h: No such file or directory

RHEL / Fedora / CentOS
>yum install ncurses-devel ncurses

Debian / Ubuntu
>apt-get install libncurses5-dev libncursesw5-dev

빌드할 때, -lncurses 옵션을 붙여줘야 올바르게 컴파일 할 수 있다.
gcc -o program program.c -lncurses

#대표적인 프로그램으로는 linux >top명령어에 의한 화면일것이다.

#Linux Tettris 코딩, 2가지 방법에 대해서(2번째 방법을 개인적으로 선호합니다.)
- curses.h 를 이용한 리눅스터미날환경에서 동작하는 프로그램방식입니다.

 

 

1. 기본적인 흐름을 따라가는 방법
- 키보드의 이벤트와 time이벤트를 동시에 하나의 함수에서 처리하는 로직

main(void)
{
    int tris[MAPY][MAPX],design[ARR_CNT][ARR_CNT],xpos,ypos,score;
    while(1)
    {
        if(keyhit())
        {
            ch = getch();
            if(ch==KEY_RIGHT) ,,,,,,
        }
        kk=downPossible(tris,design,xpos,ypos,score);
        if(kk==0)
        {
            if(ypos==0) exit(0);
            else
            {
               ,,,,,
            }
         }
     }
}

linux_tris.c
0.01MB

 

2. time_event handler를 이용해서 키보드로 제어하지 않는 부분을 해당코드에 입력 
- time이벤트처리를 따로 뺴고, 키보드의 로직은 다른 함수에서 분리시키는 로직

   
#include<signal.h>
#include<sys/time.h>

void time_handler(int signum)
{
    static int cnt=0;
    printf("timer expired[%d]\n", cnt++);
}

int main(void)
{
    struct sigaction sa;
    struct itimerval timer;

    memset(&sa,0x00,sizeof(sa));
    sa.sa_handler=&time_handler;
    sigaction(SIGVTALRM,&sa,NULL);

    timer.it_value.tv_sec=0;
    timer.it_value.tv_usec=250000;

    timer.it_interval.tv_sec=0;
    timer.it_interval.tv_usec=250000;

    setitimer(ITIMER_VIRTUAL,&timer,NULL);

    while(1);
}      

 

linux_tris_time.c
0.01MB

#Linux Tettris game 프로그램코드(c언어)

1. 소스

#include <curses.h>

2. Compile & Link

CFLAGS=-O2 -Wall -Wextra -pedantic -Wno-vla -std=c99
LDFLAGS=-lncurses

3. 주요로직

- c# 언어이던지, java 언어이던지,

- c언어이던지 로직은 같다. 단지 출력부분만 틀릴뿐

- 출력부분을 살펴보자.

void draw_tris(int **tris)

{

    int ii,kk;

    char showtmp[MAPY][MAPX+1];

    memset(showtmp,0x00,sizeof(showtmp));

    for(ii=0; ii<MAPY; ii++)
    for(kk=0; kk<MAPX; kk++)
    {
        if(tris[ii][kk]==1) showtmp[ii][kk]='*';
        else showtmp[ii][kk]=' '; }

    clear();
    mvprintw(1,1,"TETTRIS-----------------------------");
    for(ii=0; ii<MAPY-1; ii++)
        mvprintw(2+ii,1,"%s",showtmp[ii]);

}

 

 

 

 

#1

 "./command" 은 현재의 디렉토리에 있는 "command" 를 실행하라는 것입니다. 앞의 "./" 를 입력하지 않으려면 PATH 를 지정해 주면 됩니다.

쉘에 따라 다르지만 bash 가 보편적이므로

export PATH=./:$PATH

하면 됩니다. 윈도우즈는 기본적으로 현재의 디렉토리를 지정해 주지 않아도, 현재디렉토리를 최우선으로 찿기때문에 필요없는것 이지만 기본원리는 마찬가지 입니다. 리눅스에서 명확하게 지정하도록 하였으며, 이것은 다른 디렉토리에 같은 화일명이 있을 경우 사용자에게 어느 디렉토리의 파일을 실행시킬것인가의 주도권을 이양하는 의미도 있습니다.

 

#2

.profile
또는
.bash_profile
의 끝에 다음의 코드를 추가하는 것입니다:

PATH=${PATH}:.


${PATH} 은 기존의 패스 문자열을 나타내고,
점(.)은 현재 디렉토리를 나타냅니다.

이러면 현재 디렉토리가 어디든 상관 없이, 현재 디렉토리에 있는 파일을 항상 실행시킬 수 있습니다.

+ Recent posts