[보관함:] 업무 레시피들

  • Cinnamon DE CLI 명령으로 VPN 접속하기

    아래처럼 명령을 입력할 수 있다.

    nmcli con up "VPN_NAME"Code language: JavaScript (javascript)

    그리고 연결 이름을 확인하려면,

    nmcli con

    연결이 up이니, 연결을 끊는 것이 down 인 건 자명하겠지?

  • Ubuntu 20.04 hibernation

    패키지 설치

    sudo apt install pm-utils hibernate

    /swapfile 확인.

    cat /proc/swaps
    Filename				Type		Size	Used	Priority
    /swapfile                               file		2097148	0	-2

    UUID 확인

    findmnt -no UUID -T /swapfile
    5c0028fe-edc4-4b17-93d0-b78fda1f83b8

    여기서 UUID 기록.

    오프셋 확인

    sudo filefrag -v /swapfile
    Filesystem type is: ef53
    File size of /swapfile is 2147483648 (524288 blocks of 4096 bytes)
     ext:     logical_offset:        physical_offset: length:   expected: flags:
       0:        0..   32767:      34816..     67583:  32768:            
       1:    32768..   63487:      67584..     98303:  30720:            
       2:    63488..   96255:     100352..    133119:  32768:      98304:
       3:    96256..  126975:     133120..    163839:  30720:            
       4:   126976..  159743:     165888..    198655:  32768:     163840:
       5:   159744..  190463:     198656..    229375:  30720:            
       6:   190464..  223231:     231424..    264191:  32768:     229376:
       7:   223232..  253951:     264192..    294911:  30720:            
       8:   253952..  286719:     296960..    329727:  32768:     294912:
       9:   286720..  319487:     329728..    362495:  32768:            
      10:   319488..  352255:     362496..    395263:  32768:            
      11:   352256..  385023:     395264..    428031:  32768:            
      12:   385024..  417791:     428032..    460799:  32768:            
      13:   417792..  450559:     460800..    493567:  32768:            
      14:   450560..  481279:     493568..    524287:  30720:            
      15:   481280..  514047:     557056..    589823:  32768:     524288:
      16:   514048..  524287:     589824..    600063:  10240:             last,eof

    여기서 physical_offset: 의 처음인 34816을 기록.

    /etc/default/grub 파일 수정

    아래 예시처럼 변경.

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=5c0028fe-edc4-4b17-93d0-b78fda1f83b8 resume_offset=34816"

    GRUB 업데이트

    sudo update-grub

    /etc/initramfs-tools/conf.d/resume 파일 생성

    내용은 아래처럼.

    RESUME=UUID=5c0028fe-edc4-4b17-93d0-b78fda1f83b8 resume_offset=34816

    initramfs 재생성

    sudo update-initramfs -c -k all

    재부팅 후, hibernation 확인

    sudo systemctl hibernate

  • Linux Mint 계속 네트워크 프린터 찾는 거 멈추게 하기

    공유 사무실 등에서 일할 때 계속 불필요하게 네트워크 프린터를 찾아댄다. 불편하다. 나는 프린터도 쓰지 않는데 말이다. 그렇다면,

    sudo systemctl stop cups-browsed.service
    sudo systemctl disable cups-browsed.service

    이렇게 해서 해결하자.

  • 아파치 워드프레스 관리자 IP 접속 제한

    주로 보안 제약이 강한 대기업 블로그에서 주로 요구하는 사항인데, 관리자나 로그인 페이지의 접근을 IP 대역으로 막는다.

    주의할 점은 관리자 페이지를 막아도 admin-ajax.php, admin-post.php 의 접근은 열어 두어야 한다는 거다. 그것까지 다 막으면 워드프레스의 일반적인 폼 제출과 AJAX 요청까지 다 틀어막혀 사이트 동작이 되지 않을 수 있다.

    아래 코드를 참고하여 아파치 설정에 추가한다. LocationMatch 지시자는 .htaccess 에 넣을 수 없다는 것에 유의한다. 그리고 .htacess 파일에 넣지 못하고 일반 설정 파일에 삽입하니, 수정 후 서버 재시작을 꼭 해주는 것을 잊지 말자.

    <LocationMatch "wp-admin/(?!admin-ajax|admin-post).*\.php$|wp-signup\.php$|wp-login\.php$">
    Require all denied
    Require ip 127.0.0.1
    </LocationMatch>
    # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
  • gulpfile.js

    스크립트 minification 을 위해 자주 사용하는 gulpfile.js 템플릿 코드

    const gulp = require('gulp')
        , uglify = require('gulp-uglify')
        , uglifycss = require('gulp-uglifycss')
        , rename = require('gulp-rename')
        , sourcemaps = require('gulp-sourcemaps')
        , clean = require('gulp-clean')
    ;
    
    gulp.task('min-js', function () {
        return gulp
            .src([
                'assets/js/**/*.js',
                '!assets/js/**/*.min.js',
                '!assets/js/vendor/*.js',
            ])
            .pipe(sourcemaps.init())
            .pipe(uglify())
            .pipe(rename(function (path) {
                path.extname = '.min.js';
            }))
            .pipe(sourcemaps.write('.'))
            .pipe(gulp.dest('assets/js'));
    });
    
    gulp.task('min-css', function () {
        return gulp
            .src([
                'assets/css/**/*.css',
                '!assets/css/**/*.min.css',
                '!assets/css/vendor/*.css',
            ])
            .pipe(uglifycss())
            .pipe(rename(function (path) {
                path.extname = '.min.css';
            }))
            .pipe(gulp.dest('assets/css'));
    });
    
    gulp.task('clean', function () {
        return gulp
            .src([
                'assets/**/*.min.{js,css}',
                '!assets/css/vendor/*.css',
                '!assets/js/vendor/*.js',
            ], {read: false})
            .pipe(clean())
    });
    
    
    gulp.task('watch', function () {
        gulp.watch([
            'assets/js/**/*.js',
            '!assets/js/**/*.min.js',
            '!assets/js/vendor/*.js',
        ], gulp.parallel(['min-js']));
    
        gulp.watch([
            'assets/css/**/*.css',
            '!assets/css/**/*.min.css',
            '!assets/css/vendor/*.css',
        ], gulp.parallel(['min-css']));
    });
    
    gulp.task('default', gulp.series('clean', 'min-js', 'min-css', 'watch'));
    gulp.task('build', gulp.series('clean', 'min-js', 'min-css'));
    
  • Linux Mint Toggle Touchpad

    #!/bin/bash
    # touchpad_toggle
    SETTING='org.cinnamon.settings-daemon.peripherals.touchpad touchpad-enabled'
    ENABLED=$(gsettings get ${SETTING})
    
    if [[ 'true' = ${ENABLED} ]]; then
        gsettings set ${SETTING} false
    elif [[ 'false' = ${ENABLED} ]]; then
        gsettings set ${SETTING} true
    fi