1. Install mypy
$ pip install -U mypy
2. Install PyCharm mypy plugin
- Plugins > Marketplace > Mypy
3. Set path to mypy in mypy plugin settings
- Preferences > Mypy > Path (And Test)
4. Install boto3-stubs with boto3 services you use
$ python -m pip install 'boto3-stubs[s3,athena]'
참고 :
https://pypi.org/project/boto3-stubs/#installation
개발
2020년 2월 27일 목요일
2020년 2월 26일 수요일
Serverless Lambda Environment Variables
# serverless.yml
# Python handler
참고 :
https://serverless.com/framework/docs/providers/aws/guide/functions#environment-variables
service: service-name
provider:
name: aws
environment:
FOO: bar
functions:
hello:
handler: handler.hello
FOO2: bar2
# Python handler
import os
...
FOO = os.environ['FOO'])
...
참고 :
https://serverless.com/framework/docs/providers/aws/guide/functions#environment-variables
라벨:
AWS,
Lambda,
Python,
Serverless
2020년 2월 5일 수요일
DataGrip Athena 연동
1. Athena JDBC Driver 다운로드
- https://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html2. Driver 추가
- [+] 아이콘 > Driver1). Genaral 탭
- Name : ex) AWS Athena- Driver files : [+] 아이콘 > Custom JARs... > 다운로드 받은 Athena JDBC Driver 선택
- Class : com.simba.athena.jdbc.Driver
- URL templates :
# AWS profile 사용시jdbc:awsathena://AwsRegion=[{host::ap-northeast-2}][\?<;,{:identifier}={:param}>]
# Key, Secret 사용시jdbc:awsathena://AwsRegion=[{host::ap-northeast-2}][\?<;,UID={user:param},PWD={password:param},{:identifier}={:param}>]
2). Advanced 탭
- S3OutputLocation : s3://쿼리-output-버킷명/- Workgroup : primary
# AWS profile 사용시 필요- AwsCredentialsProviderClass : com.simba.athena.amazonaws.auth.DefaultAWSCredentialsProviderChain
3. Data Source 추가
- [+] 아이콘> Data Source > AWS Athena- Name : 원하는 이름
# AWS profile 사용시- Host (AWS region) 확인 후 Test Connection
# Key, Secret 사용시- Host : AWS region
- User : AWS Access Key Id
- Password : AWS Secret Access Key
> Test Connection
2019년 4월 4일 목요일
MySQL 슬레이브 추가를 위한 mysqldump를 기존 슬레이브에서 실행
mysqldump on slave
mysql replication backup on slave
mysqldump for additional slave
Master에 영향을 주지 않고 특정 슬레이브에서 덤프를 하고 싶을때
mysqldump option --dump-slave 옵션 사용 가능
예시)
mysqldump --all-databases --dump-slave=2 --single-transaction --order-by-primary -u 계정 -p > /덤프/파일명.sql
--dump-slave=2 : dump를 실행하는 슬레이브에 설정된 Master 서버 정보를 dump 파일에 CHANGE MASTER TO 로 기록
1: 실제 statement로 기록 / 2: CHANGE MASTER TO를 주석 처리
--------------
관련 옵션)
--master-data=2 : dump를 실행하는 서버의 정보를 CHANGE MASTER TO 정보로 기록
마스터에서 직접 dump를 실행할 경우나, 슬레이브에서 슬레이브 체인을 구성할때{M -> S(M) -> S} 활용 가능
참고:
https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#option_mysqldump_dump-slave
mysql replication backup on slave
mysqldump for additional slave
Master에 영향을 주지 않고 특정 슬레이브에서 덤프를 하고 싶을때
mysqldump option --dump-slave 옵션 사용 가능
예시)
mysqldump --all-databases --dump-slave=2 --single-transaction --order-by-primary -u 계정 -p > /덤프/파일명.sql
--dump-slave=2 : dump를 실행하는 슬레이브에 설정된 Master 서버 정보를 dump 파일에 CHANGE MASTER TO 로 기록
1: 실제 statement로 기록 / 2: CHANGE MASTER TO를 주석 처리
--------------
관련 옵션)
--master-data=2 : dump를 실행하는 서버의 정보를 CHANGE MASTER TO 정보로 기록
마스터에서 직접 dump를 실행할 경우나, 슬레이브에서 슬레이브 체인을 구성할때{M -> S(M) -> S} 활용 가능
참고:
https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#option_mysqldump_dump-slave
2017년 12월 22일 금요일
PHP Session handler Redis 설정
Ubuntu 12.04, PHP 5.x 기준
PhpRedis 설치
su cd /tmp git clone https: //github.com/nicolasff/phpredis.git cd phpredis phpize ./configure make && make install echo extension=redis.so > /etc/php5/conf.d/redis.ini php -i | grep -E 'Redis Support|Registered save handlers' |
- Redis Support => enabled 확인
- Registered save handlers => redis 포함 확인
PHP Session handler 설정 변경
vi /etc/php5/apache2/php.ini ----------------------------- ... ;; 주석처리 ;session.save_handler = files ;; 아래 내용 추가 session.save_handler = redis session.save_path = "tcp://레디스서버IP:포트?auth=패스워드" ... |
- Apache 재시작 후 Redis에 세션 데이터 생성 여부 확인
service apache2 restart |
참고: https://github.com/phpredis/phpredis
2017년 12월 21일 목요일
Let’s Encrypt SSL 인증서 설치 경로 변경
(Let’s Encrypt config directory change)
(Let’s Encrypt certificate directory change)
(/etc/letsencrypt change)
* --config-dir 옵션으로 키파일 위치 변경 가능
* 인증서 생성시 --config-dir 옵션을 사용해서 설정 디렉토리를 변경한 경우, 이후 certbot-auto 관련 명령시 --config-dir 옵션 추가 필요
참고: https://letsencrypt.readthedocs.io/en/latest/using.html#lock-files
(Let’s Encrypt certificate directory change)
(/etc/letsencrypt change)
* --config-dir 옵션으로 키파일 위치 변경 가능
$ certbot-auto certonly --webroot --webroot-path=/var/www --config-dir /변경할/디렉토리 -d 도메인 -d 추가도메인
* 인증서 생성시 --config-dir 옵션을 사용해서 설정 디렉토리를 변경한 경우, 이후 certbot-auto 관련 명령시 --config-dir 옵션 추가 필요
$ certbot-auto renew --config-dir /설정한/디렉토리
참고: https://letsencrypt.readthedocs.io/en/latest/using.html#lock-files
라벨:
HTTPS,
Let’s Encrypt,
SSL
uCloud NAS 연결
- Ubuntu 12.04 기준
참고: https://ucloudbiz.olleh.com/portal/portal.portalinfo.html
사전 확인
- 과정 중 root 계정 필요
- 마운트하려는 서버에서
lshw -C network
실행시 eth1 항목이 확인되지 않는다면 uCloud 콘솔에서 CIP 연결 필요함
lshw -C network
실행시 eth1 항목이 확인되지 않는다면 uCloud 콘솔에서 CIP 연결 필요함eth1 interface 추가
$ su
$ vi /etc/network/interfaces
- 아래 내용 추가
auto eth1
iface eth1 inet dhcp
- 적용
$ service networking restart
$ ifconfig
- eth1 인식 확인
$ su $ vi /etc/network/interfaces - 아래 내용 추가 auto eth1 iface eth1 inet dhcp |
$ service networking restart $ ifconfig - eth1 인식 확인 |
Mount
- 관련 패키지 설치
$ apt-get update
$ apt-get install nfs-common
- NAS 볼륨 확인
$ showmount -e
10.xx
.
xx.xx
- 대상 디렉토리 생성 후 mount
$ mkdir /대상디렉토리
$ mount -t nfs
10.xx
.
xx.xx
:/볼륨명 /
대상디렉토리
$ df -h
- 마운트 확인
- reboot시에도 마운트 되도록 설정
$ vi /etc/fstab
- 아래 내용 추가
10.
xx.
xx.
xx:/볼륨명 /대상디렉토리 nfs ru
0
0
- /etc/fstab 설정 오류 확인
$ mount -a
- 오류가 있을 경우에만 해당 사항 출력
$ apt-get update $ apt-get install nfs-common |
$ showmount -e 10.xx . xx.xx |
$ mkdir /대상디렉토리 $ mount -t nfs 10.xx . xx.xx :/볼륨명 / 대상디렉토리$ df -h - 마운트 확인 |
$ vi /etc/fstab - 아래 내용 추가 10. xx. xx. xx:/볼륨명 /대상디렉토리 nfs ru 0 0 |
$ mount -a - 오류가 있을 경우에만 해당 사항 출력 |
참고: https://ucloudbiz.olleh.com/portal/portal.portalinfo.html
2017년 12월 5일 화요일
Hshare Demon Install (CentOS 6.9)
====================
Hshare Install
CentOS 6.9
====================
su
yum update -y
## build-essential
yum groupinstall 'Development Tools'
------------
# OpenSSL ECC
------------
## openssl elliptic curve cryptography
cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.0.2m.tar.gz
tar -zxf openssl-1.0.2m.tar.gz
cd openssl-1.0.2m
./config --prefix=/usr --openssldir=/usr/local/openssl shared
make
make test
make install
## check
openssl version
- (OpenSSL 1.0.2m)
openssl ecparam -list_curves
- (include secp256k1)
------------
# Dependencies
------------
## ld -lz
yum install zlib-devel -y
## Berkeley DB
// yum install db4-devel -y (include zlib)
## Boost
yum install boost-devel -y
## qrencode, miniupnpc
rpm -ivh ftp://195.220.108.108/linux/dag/redhat/el6/en/x86_64/dag/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum install qrencode-devel -y
yum install miniupnpc-devel -y
------------
# Build
------------
cd /usr/local/src/
git clone https://github.com/HcashOrg/Hshare.git hshare
cd hshare/src/
## nano makefile.unix 수정
nano makefile.unix
기존: -l boost_thread$(BOOST_LIB_SUFFIX) \
수정: -l boost_thread-mt$(BOOST_LIB_SUFFIX) \
make -f makefile.unix
# Public Node
addnode=52.193.215.1
addnode=119.254.102.218
addnode=139.198.188.182
addnode=124.42.118.99
addnode=121.201.24.167
addnode=209.9.107.116
addnode=13.56.173.122
addnode=54.79.47.132
addnode=13.54.61.175
addnode=34.203.15.31
addnode=52.59.144.109
addnode=35.177.31.30
addnode=52.220.111.66
addnode=13.114.115.237
addnode=13.126.121.197
addnode=35.182.200.22
addnode=54.233.180.109
addnode=52.64.238.215
Hshare Install
CentOS 6.9
====================
su
yum update -y
## build-essential
yum groupinstall 'Development Tools'
------------
# OpenSSL ECC
------------
## openssl elliptic curve cryptography
cd /usr/local/src/
wget https://www.openssl.org/source/openssl-1.0.2m.tar.gz
tar -zxf openssl-1.0.2m.tar.gz
cd openssl-1.0.2m
./config --prefix=/usr --openssldir=/usr/local/openssl shared
make
make test
make install
## check
openssl version
- (OpenSSL 1.0.2m)
openssl ecparam -list_curves
- (include secp256k1)
------------
# Dependencies
------------
## ld -lz
yum install zlib-devel -y
## Berkeley DB
// yum install db4-devel -y (include zlib)
## Boost
yum install boost-devel -y
## qrencode, miniupnpc
rpm -ivh ftp://195.220.108.108/linux/dag/redhat/el6/en/x86_64/dag/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum install qrencode-devel -y
yum install miniupnpc-devel -y
------------
# Build
------------
cd /usr/local/src/
git clone https://github.com/HcashOrg/Hshare.git hshare
cd hshare/src/
## nano makefile.unix 수정
nano makefile.unix
기존: -l boost_thread$(BOOST_LIB_SUFFIX) \
수정: -l boost_thread-mt$(BOOST_LIB_SUFFIX) \
make -f makefile.unix
# Public Node
addnode=52.193.215.1
addnode=119.254.102.218
addnode=139.198.188.182
addnode=124.42.118.99
addnode=121.201.24.167
addnode=209.9.107.116
addnode=13.56.173.122
addnode=54.79.47.132
addnode=13.54.61.175
addnode=34.203.15.31
addnode=52.59.144.109
addnode=35.177.31.30
addnode=52.220.111.66
addnode=13.114.115.237
addnode=13.126.121.197
addnode=35.182.200.22
addnode=54.233.180.109
addnode=52.64.238.215
2017년 3월 20일 월요일
[CodeIgniter] URL에서 index.php 제거
1. httpd.conf
1) rewrite_module 활성화
#LoadModule rewrite_module modules/mod_rewrite.so
라인 주석 해제
2) .htaccess 사용을 위해 AllowOverride 옵션을 All로 변경
#AllowOverride None
AllowOverride All
- 수정 후 Apache 재시작
2. 루트 폴더에 .htaccess 파일 생성
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond $1 !^(index\.php|images|robots\.txt) # 처리를 제외할 파일이나 디렉토리를 추가
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
3. CI config.php 수정
- index_page 수정
//$config['index_page'] = 'index.php';
$config['index_page'] = '';
2017년 2월 28일 화요일
[Tomcat] catalina.out 날짜별 생성
Tomcat catalina.out daily logrotate
1. logrotate 설정 디렉토리로 이동
$ cd /etc/logrotate.d/
2. 설정 파일 생성
$ nano tomcat
/var/local/tomcat/logs/catalina.out {
copytruncate
daily
rotate 30
missingok
notifempty
dateext
}
3. (선택) 현재 파일 강제 갱신
$ logrotate -f /etc/logrotate.d/tomcat
설정 파일 참고 :
http://linuxcommand.org/man_pages/logrotate8.html
1. logrotate 설정 디렉토리로 이동
$ cd /etc/logrotate.d/
2. 설정 파일 생성
$ nano tomcat
/var/local/tomcat/logs/catalina.out {
copytruncate
daily
rotate 30
missingok
notifempty
dateext
}
3. (선택) 현재 파일 강제 갱신
$ logrotate -f /etc/logrotate.d/tomcat
설정 파일 참고 :
http://linuxcommand.org/man_pages/logrotate8.html
피드 구독하기:
글 (Atom)