MariaDB Automatically Daily Dump(매일 백업하기)


우선 아래와 같은 쉘 스크립트를 만든다. 아래의 스크립트는 DBMS에 있는 모든 DB에서 특정 DB를 제외한 DB를 덤프하는 스크립트다.

#!/bin/bash

# Database credentials
user="user_name"
password="password"
host="localhost"

# Other options
backup_path="/your/path/to/backup"
date=$(date +"%Y-%m-%d")

# To create a new directory into backup directory location
mkdir -p $backup_path/$date

# get a list of databases
db_names=`mysql -u$user -p$password -e "SHOW DATABASES;" | grep -Ev "(information_schema|test|performance_schema|mysql)"`

# Dupm database into SQL file
for db_name in $db_names; do
        mysqldump --add-locks --add-drop-table --force --user=$user --password=$password --host=$host $db_name | gzip > $backup_path/$date/$db_name.sql.gz
done

# Delete files older than 10 days
find $backup_path/* -mtime +10 -exec rm {} \;

스크립트를 다 만들었으면 crontab에 등록을 한다.(crontab이 설치가 안돼있을 경우에는 설치부터, 설치 과정은 생략) 크론은 CentOS 7 기준으로 /etc/cron.d/ 디렉토리에 등록하면 된다.

# For Details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

0 1 * * * user_name /your/path/to/script/script.sh

이렇게 하면 매일 오전 1시에 크론이 위의 스크립트를 실행하여 DB를 덤프한다.


nginx proxy 설정


/etc/nginx/의 하위 디렉토리인 conf.d로 들어가서 xxxx.conf 파일 생성

해당 파일에 아래와 같은 정보 입력

server {
        listen 80;
        server_name your.domain.com;

        access_log /var/log/admin/access.log;
        error_log /var/log/admin/error.log;

        location / {
                proxy_pass_header Server;
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Scheme $scheme;
                proxy_pass http://127.0.0.1:8080;
        }
}

저장 후 nginx 재시작

service nginx restart

기본 nginx설정이라면 conf.d 에 있는 파일을 모두 불러와서 로딩시켜주므로 별도의 설정은 필요 없음


자바 Swing Graphics 이미지 그리기 및 밝기 변화를 이용한 애니메이션 효과


/**
 *
 * @param g - Graphics의 객체
 * @param imgStr - 이미지 파일 이름
 * @param str - 이미지 위에 띄울 멘트
 */
private void drawMyImg(Graphics g, String imgStr, String str) {
    setBackground(Color.white);
    Image img = loadImage(imgStr);
    g.drawImage(img, 0, 0, m_width, m_height, this);
    setBright(g, str);
}

/**
 * 이미지 불러오기
 * @param name - 이미지 파일이름
 * @return - 이미지 객체
 */
private Image loadImage(String name) {
    Image result = null;
    MediaTracker tracker = new MediaTracker(this);

    Toolkit toolkit = Toolkit.getDefaultToolkit();
    result = toolkit.getImage(name);
    tracker.addImage(result, 0);
    try {
        tracker.waitForAll();
    } catch (InterruptedException e) {
        return null;
    }

    return result;
}

/**
 * 밝기정보 변화 및 글자 그리기(애니메이션 효과)
 * @param g - Graphics의 객체
 * @param str - 화면에 띄울 문자
 */
private void setBright(Graphics g, String str) {
    int brightness = (int)(256 - 256 * percentage);

    g.setColor(strColor);

    g.drawString(str, m_width/2-(str.length()/2)*mulSize, str_height);
    g.setColor(new Color(255,255,255,brightness));

        g.fillRect(0, 0, getWidth(), getHeight());
        percentage += 0.01f;
        try {
            Thread.sleep(sleepTime);
        } catch (Exception e) {

        }
        if (percentage > 0.99f) {
            step++;
            percentage=initPercentage;
            try {
                Thread.sleep(sleepLastTime);
            } catch (Exception e) {

            }
        }
        repaint();
}

자바 음향효과(BGM)


AudioClip clip;
try {
    File file = new File("resources/bgm/bgm.wav");
    clip = Applet.newAudioClip(file.toURL());
    clip.play();
} catch (Exception e) {
    e.printStackTrace();
}

Pagination