SMALL

원인 : Tomcat 옵션에서 -Djava.awt.headless=true 옵션이 인식되지 않고 WAS 실행.

작업 내역 : 위의 옵션을 환경변수 설정 수정 후 WAS 재구동 진행.

 

참고. 해당 옵션은 Tomcat에서 서버 쪽에서 이미지를 생성하는 로직에서 발생하는 에러를 방지하는 옵션입니다.

LIST
SMALL

 

ssl 인증서 유요 기간에 대한 정보 확인

echo '' | openssl s_client -connect 서버주소:443 | openssl x509 -noout -dates

ssl 인증서 만료일에 대한 정보 확인

openssl s_client -connect 서버주소:443 | openssl x509 -noout -enddate

 

ssl 인증서 정보 확인

echo | openssl s_client -showcerts -connect 서버주소:443

 

echo '' | openssl s_client -connect 서버주소:443 | openssl x509 -noout -text
LIST
SMALL

리눅스에서 netstat  명령어는 시스템의 네트워크 관련 다양한 상태정보를 관리할 수 있는 명령어 입니다.

 

사용법 netstat [option] [address_family_option]

 

  • netstat -antp
    • 내가 가장 많이 사용하는 옵션 
    • -a : 모든 소켓 상태 정보
    • -n (--numeric) : 도메인 주소를 읽어들이지 않고 숫자로 출력한다. ex)ftp -->21 
    • -t (--tcp) :  TCP 소켓을 출력하라는 옵션,  TCP 소켓 중 연결된(ESTABLISHED) 소켓만 출력 됨
    • -p (--program) : PID(프로세서 ID) 와 사용중인 프로그램명이 표시된다. (TCP 소켓을 열고 있는 프로세스 확인 유용)
[root@dochi /]# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:445                 0.0.0.0:*                   LISTEN      2341/smbd           
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LISTEN      2341/smbd           
tcp        0      0 0.0.0.0:56783               0.0.0.0:*                   LISTEN      1874/rpc.statd      
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1852/rpcbind        
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      2186/vsftpd         
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2150/sshd           
tcp        0      0 0.0.0.0:56695               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1929/cupsd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      2265/master         
tcp        0     96 10.10.10.15:22              10.10.11.12:3385            ESTABLISHED 19030/sshd          
tcp        0      0 10.10.10.15:22              10.10.11.12:46599           ESTABLISHED 18752/sshd          
tcp        0      0 :::445                      :::*                        LISTEN      2341/smbd           
tcp        0      0 :::34494                    :::*                        LISTEN      -                   
tcp        0      0 :::139                      :::*                        LISTEN      2341/smbd           
tcp        0      0 :::60013                    :::*                        LISTEN      1874/rpc.statd      
tcp        0      0 :::111                      :::*                        LISTEN      1852/rpcbind        
tcp        0      0 :::80                       :::*                        LISTEN      3910/httpd          
tcp        0      0 :::22                       :::*                        LISTEN      2150/sshd           
tcp        0      0 :::23                       :::*                        LISTEN      2161/xinetd         
tcp        0      0 ::1:631                     :::*                        LISTEN      1929/cupsd          
tcp        0      0 ::1:25                      :::*                        LISTEN      2265/master   

 

옵션 하나하나 분석!!!!

  • netstat [옵션 없음]
    • 모든 연결된(ESTABLISHED) 소켓 상태 정보
[root@dochi /]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0     96 10.10.10.15:ssh             10.10.11.12:qnxnetman       ESTABLISHED 
tcp        0      0 10.10.10.15:ssh             10.10.11.12:46599           ESTABLISHED 
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  15     [ ]         DGRAM                    12297  /dev/log
unix  2      [ ]         DGRAM                    12800  @/org/freedesktop/hal/udev_event
unix  2      [ ]         DGRAM                    9570   @/org/kernel/udev/udevd
unix  2      [ ]         DGRAM                    449020 
unix  2      [ ]         DGRAM                    448785 
unix  2      [ ]         DGRAM                    443670 
unix  2      [ ]         DGRAM                    441635 
unix  3      [ ]         STREAM     CONNECTED     16043  /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     16042  
unix  3      [ ]         STREAM     CONNECTED     16019  /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     16018  
unix  3      [ ]         STREAM     CONNECTED     16007  /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     16006  
unix  3      [ ]         STREAM     CONNECTED     15975  /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     15974  
unix  3      [ ]         STREAM     CONNECTED     14301  /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     14300  
unix  2      [ ]         DGRAM                    13795  
unix  2      [ ]         DGRAM                    13729  

 

  • netstat -a
    • -a : 모든 소켓 상태 정보
[root@dochi /]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 *:microsoft-ds              *:*                         LISTEN      
tcp        0      0 *:netbios-ssn               *:*                         LISTEN      
tcp        0      0 *:56783                     *:*                         LISTEN      
tcp        0      0 *:sunrpc                    *:*                         LISTEN      
tcp        0      0 *:ftp                       *:*                         LISTEN      
tcp        0      0 *:ssh                       *:*                         LISTEN      
tcp        0      0 *:56695                     *:*                         LISTEN      
tcp        0      0 localhost:ipp               *:*                         LISTEN      
tcp        0      0 localhost:smtp              *:*                         LISTEN      
tcp        0      0 10.10.10.15:ssh             10.10.11.12:qnxnetman       ESTABLISHED 
tcp        0      0 10.10.10.15:ssh             10.10.11.12:46599           ESTABLISHED 

Proto RefCnt Flags       Type       State         I-Node Path
unix  15     [ ]         DGRAM                    12297  /dev/log
unix  2      [ ACC ]     STREAM     LISTENING     13563  public/cleanup
unix  2      [ ACC ]     STREAM     LISTENING     13570  private/tlsmgr
/dbus-oXBwtEiBLb
unix  2      [ ACC ]     STREAM     LISTENING     12706  /var/run/cups/cups.sock
unix  2      [ ]         DGRAM                    9570   @/org/kernel/udev/udevd
unix  2      [ ACC ]     STREAM     LISTENING     12642  /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     12737  /var/run/acpid.socket
unix  2      [ ACC ]     727  /var/run/abrt/abrt.socket
unix  2      [ ACC ]     STREAM     LISTENING     12775  @/var/run/hald/dbus-XzJpd5E24X
unix  2      [ ]         DGRAM                    449020 
unix  2      [ ]         DGRAM                    448785 
unix  2      [ ]         DGRAM                    443670 
unix  2      [ ]         DGRAM                    441635 
unix  3      [ ]         STREAM     CONNECTED     16043  /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     16042  
unix  3      [ ]   
unix  3      [ ]         STREAM     CONNECTED     14301  /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     14300  
unix  2      [ ]         DGRAM                    13795  
unix  2      [ ]         DGRAM                    13729  
unix  2      [ ]         DGRAM                    13671  

 

  • netstat -t
    • -t (--tcp) :  TCP 소켓을 출력하라는 옵션,  TCP 소켓 중 연결된(ESTABLISHED) 소켓만 출력 됨
 netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0     96 10.10.10.15:ssh             10.10.11.12:qnxnetman       ESTABLISHED 
tcp        0      0 10.10.10.15:ssh             10.10.11.12:46599           ESTABLISHED 
[root@dochi /]# netstat --tcp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0     96 10.10.10.15:ssh             10.10.11.12:qnxnetman       ESTABLISHED 
tcp        0      0 10.10.10.15:ssh             10.10.11.12:46599           ESTABLISHED 

 

  • netstat -n
    • -n (--numeric) : 도메인 주소를 읽어들이지 않고 숫자로 출력한다. ex)ftp -->21 
 netstat -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0    224 10.10.10.15:22              10.10.11.12:3385            ESTABLISHED 
tcp        0      0 10.10.10.15:22              10.10.11.12:46599           ESTABLISHED 
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  15     [ ]         DGRAM                    12297  /dev/log
unix  2      [ ]         DGRAM                    12800  @/org/freedesktop/hal/udev_event
unix  2      [ ]         DGRAM                    9570   @/org/kernel/udev/udevd
unix  2      [ ]         DGRAM                    449020 

 

  • netstat -p
    • -p (--program) : PID(프로세서 ID) 와 사용중인 프로그램명이 표시된다. (TCP 소켓을 열고 있는 프로세스 확인 유용)
[root@dochi /]# netstat -p
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0     96 10.10.10.15:ssh             10.10.11.12:qnxnetman       ESTABLISHED 19030/sshd          
tcp        0      0 10.10.10.15:ssh             10.10.11.12:46599           ESTABLISHED 18752/sshd          
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path
unix  15     [ ]         DGRAM                    12297  1799/rsyslogd       /dev/log
unix  2      [ ]         DGRAM                    12800  1955/hald           @/org/freedesktop/hal/udev_event
unix  2      [ ]         DGRAM                    9570   666/udevd           @/org/kernel/udev/udevd
unix  2      [ ]         DGRAM                    449020 19059/su            
unix  2      [ ]         DGRAM                    448785 19030/sshd 

 

  • netstat -rn
    • 시스템 라우팅 정보 
[root@dochi /]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.10.10.0      0.0.0.0         255.255.255.0   U         0 0          0 eth2
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth2
0.0.0.0         10.10.10.254    0.0.0.0         UG        0 0          0 eth2

 

  • netstat -s
    • 부팅된 이후부터 현재까지 누적된 프로토콜 통계정보
[root@dochi /]# netstat -s
Ip:
    913002 total packets received
    990 with invalid addresses
    0 forwarded
    0 incoming packets discarded
    912012 incoming packets delivered
    588676 requests sent out
Icmp:
    3 ICMP messages received
    0 input ICMP message failed.
    ICMP input histogram:
        redirects: 3
    0 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
IcmpMsg:
        InType5: 3
Tcp:
    31 active connections openings
    110 passive connection openings
    0 failed connection attempts
    0 connection resets received
    2 connections established
    615201 segments received
    586339 segments send out
    125 segments retransmited
    0 bad segments received.
    3 resets sent
Udp:
    69856 packets received
    0 packets to unknown port received.
    30 packet receive errors
    2212 packets sent
UdpLite:
TcpExt:
    121 TCP sockets finished time wait in fast timer
    31 delayed acks sent
    4 packets directly queued to recvmsg prequeue.
    16 packets directly received from prequeue
    610545 packets header predicted
    4 packets header predicted and directly queued to user
    1537 acknowledgments not containing data received
    548231 predicted acknowledgments
    3 congestion windows recovered after partial ack
    0 TCP data loss events
    20 other TCP timeouts
    1 DSACKs received
    15 connections aborted due to timeout
    TCPSackShiftFallback: 1
IpExt:
    InMcastPkts: 2
    InBcastPkts: 293527
    OutBcastPkts: 1753
    InOctets: 447084395
    OutOctets: 105192423
    InMcastOctets: 72
    InBcastOctets: 154944511
    OutBcastOctets: 223525
LIST
SMALL

솔라리스 11 버전 에서 ntp 설정을 하여 시간 동기화를 진행 하려고 한다.

 

먼저 솔라리스 버전을 확인

[root ~]# uname -a
SunOS dbms1 5.11 11.3 i86pc i386 i86pc

ntp 설정이 안되어 있는것을 확인

ps -ef |grep ntp
root 16369 16364   0 15:11:56 pts/2       0:00 grep ntp

cd /etc/inet를 확인하여 보면 ntp.conf 파일이 없을 것을 알수있다.

[root ~]# cd /etc/inet
[root ~]# ls
datemsk.ndpd                ipaddrsel.conf              networks                    services
dhcpd.conf.example          ipnodes                     ntp.client                  slp.conf.example
hosts                       ipsecalgs                   ntp.server                  static_routes-DefaultFixed
ike                         ipsecinit.sample            protocols                   wanboot.conf.sample
inetd.conf                  netmasks                    secret

그렇기 때문에

ntp.client 파일을 카피 하여 ntp.conf 파일을 생성 한다.

-bash-4.1# cp ntp.client ntp.conf
-bash-4.1# ls
datemsk.ndpd                ipaddrsel.conf              networks                    secret
dhcpd.conf.example          ipnodes                     ntp.client                  services
hosts                       ipsecalgs                   ntp.conf                    slp.conf.example
ike                         ipsecinit.sample            ntp.server                  static_routes-DefaultFixed
inetd.conf                  netmasks                    protocols                   wanboot.conf.sample

ntp.conf 파일 끝에 추가 하여


server [NTP 서버 IP] 를 입력( 저는 내부 ntp 서버 10.10.10.10 을 입력)

 

참고!!

국내 NTP 제공 사이트

zero.bora.net

ntp.ewha.net

ntp1.epidc.co.kr

ntp2.epidc.co.kr

kr.pool.ntp.org

kr.pool.ntp.org

# To configure leap seconds processing, download the latest NIST leap seconds
# file to /etc/inet, and then create a symbolic link to it from the ntp.leap
# file. Without this file, NTP will still be able to accept leap announcements
# from its upstream sources. If this file exists and is less than 6 months old
# then the contents of this file will take precedence over the upstream servers.
# The latest leap seconds file is always available at ftp://time.nist.gov/pub

#leapfile /etc/inet/ntp.leap

server 10.10.10.10

데몬 재시작

#svcadm restart svc:/network/ntp:default

데몬 중지

#svcadm disable -st svc:/network/ntp:default

 데몬 사용

#svcadm enable -st svc:/network/ntp:default

ntp 서비스 실행중인것 확인 

-bash-4.1# ps -ef | grep ntp
    root 16915     1   0 15:40:46 ?           0:00 /usr/lib/inet/ntpd -p /var/run/ntp.pid -g
    root 16918 16501   0 15:33:44 pts/2       0:00 grep ntp

ntpq -p 명령으로 실제 연동상태 확인

-bash-4.1# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*dns.hello.re.kr  203.248.240.140  3 u   19   64    1    0.227   -5.248   0.001

 

LIST
SMALL

어느날 값자기 

CentOS 에서 백스페이이스를 누를때 마다 ^? 가 입력됨 

[root@test ~]#^?^?^?^?^?

임시적,일시적 조치방법

 stty erase ^? 입력 시 해결

[root@test ~]#stty erase ^?

영구적인 방법1 

 /etc/profile 에 stty erase ^? 를 등록  (모든 사용자에게 환경설정 값을 적용하는 /etc/profile)

[root@test ~]# ls -al /etc/profile

[root@test ~]# echo "stty erase ^?" >> /etc/profile 

설정 후 재부팅

영구적인 방법2 

 $HOME/.profile 에 stty erase ^? 를 등록  (특정 사용자에게 환경설정 값을 적용하는 $HOME/.profile)

[root@test ~]# echo "stty erase ^?" >>  $HOME/.profile
[root@test ~]# source.bash_profile

.bash_profile 이나 .bashrc 같은 파일의 설정을 변경했을 경우 재접속하거나 리부팅 할 필요없이 source 명령어를 사용해서 바로 설정을 적용시킬 수 있음

 

stty (터미널 환경 설정)

문법) stty [설정 명령] [설정할 키도브 key]

설명) 터미널 라인 설정을 확인하고 수정하는 명령어이다.

예제)stty erase ^?

 

옵션) 설정 명령

설정 명령 default 설정키 의미
 erase  ^?  입력된 한 문자 삭제 ( ^?는 DELETE key / ^H를 주로 설정 backspace key )
 kill  ^u  입력된 행을 모두 삭제
 intr  ^c  진행중인 프로세스를 종료
 quit  ^\  core dump와 함께 현재의 프로세스 중단
 eof  ^d  파일의 끝을 알림 (입력 종료)
 eol  ^d  행의 끝
 eol2  ^d  한 행을 마치기위한 별도의 문자
 swtch (np)  ^d  다른 쉘 계층으로 스위칭
 start  ^q  화면으로의 출력을 시작
 stop  ^s  화면으로의 출력을 중지
 susp  ^z  현재의 프로세스를 suspend (일시 중지)
 dsusp (np)  ^y  입력을 flush 한 후 프로세스를 suspend
 rprnt (np)  ^r  화면을 다시 갱신
 flush  ^o  stty 입력 및 출력을 즉시 버림
 werase (np)  ^w  입력한 한 단어를 삭제
 inext (np)  ^v  특수문자라 할지라도 다음 문자는 글자 그대로 입력

이 글이 도움이 되셨다면 추천 클릭을 부탁드립니다 :) 

Buy me a coffeeBuy me a coffee
LIST
SMALL

디렉터리, 파일 용량 확인 du (Disk Usage)

*문법

  • du [-option] [directory_name]

*예문

  • du -sh /home /*home 디렉토리의 전체 사용량을 출력 */
  • du -h /home /*home 하위의 모든 파일들과 디렉토리들을 출력*/

*옵션

-a, --all의 약자

-k,  사용량을 킬로바이트 단위로 환산하여 출력한다. (1KB)

-m, 사용량을 메가바이트 단위로 환산하여 출력한다. (1MB)

-h,  사용량을 사람이 읽기 편한 단위로 출력해준다. (1KB, 234MB, 3GB)

-s, --summarized의 약자 : 간단하게 총(전체) 사용량만 표시 한다.

-ㅣ, --count-links의 약자 : 하드 링크의 용량을 모두 계산.

 

*설명 

directory_name 인수를 사용하지 않으면 현재 디렉터리를 기준으로 한다.

 

*예시

[root@localhost disk1]# du -sh /disk1
2.8T    /disk1
[root@localhost disk1]# du -h /disk1
19G     /disk1/1000/1000022
26G     /disk1/1000/1000114
19G     /disk1/1000/1000063
18G     /disk1/1000/1000078
70G     /disk1/1000/1000006
11G     /disk1/1000/1000036
37G     /disk1/1000/1000113
3.2G    /disk1/1000/1000103
216M    /disk1/1000/1000129
2.8G    /disk1/1000/1000029
3.0G    /disk1/1000/1000105
27G     /disk1/1000/1000068
12G     /disk1/1000/1000018
43G     /disk1/1000/1000160

 

*파일 백업을 위하여 rsync를 설정 후 파일이 잘 올라왔는지 총량으로 확인 할때 사용했습니다.

*리눅스 cp 명령으로 cp 후에 데이터 용량 비교를 통하여 누락 없이 잘 cp 되었는지 확인할때 유용합니다.

 

이 글이 도움이 되셨다면 공감 클릭을 부탁드립니다 :) 

Buy me a coffeeBuy me a coffee

LIST
SMALL

리눅스 종류와 그 버전을 알아 볼 수 있는 방법

 

리눅스 종류 cat /etc/issue 

[root@qwe ~]# cat /etc/issue 
CentOS release 6.8 (Final)

 

리눅스 커널 버전 uname -a 

[root@qwe ~]# uname -a 
Linux qwe 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

 

그리고 cat /proc/version 

[root@qwe ~]# cat /proc/version  
Linux version 2.6.32-642.el6.x86_64 (mockbuild@worker1.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Tue May 10 17:27:01 UTC 2016

이 글이 도움이 되셨다면 공감 클릭을 부탁드립니다 :) 

Buy me a coffeeBuy me a coffee
LIST
SMALL

파일 시스템 연결(mount)

문법

  • mount [-option] [device | mount_point]
  • mount [-option] device mount_point

옵션

  • -a /etc/fstab 파일에 정의된 모든 파일 시스템을 마운트(Mount) 한다.

예문

  • $ mount -a /* /etc/fstab 파일을 기반으로 명시적으로 실행*/
  • $ mount /dev/cdrom /mnt/cdrom /* /dev/cdrom 디바이스 파일(CD-ROM)을 /mnt/cdrom 디렉터리에 마운트*/

설명

  • 인수의 지정 없이 mount 명령만 사용하면 현재 시스템에 마운트 된 정보를 출력한다.
[root@test ~]# mount

/dev/sda3 on / type ext4 (rw) 
proc on /proc type proc (rw) 
sysfs on /sys type sysfs (rw) 
devpts on /dev/pts type devpts (rw,gid=5,mode=620) 
tmpfs on /dev/shm type tmpfs (rw) 
/dev/sda1 on /boot type ext4 (rw) 
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) 
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

 

/etc/fstab 에

공유 폴터 입력 예제

//192.168.110.180/data /data1 cifs credentials=/etc/samba/cred 0 0

리눅스 가상 머신에 VMware Tools를 설치하기 위하여 cdrom 마운트를 실행하는데

mkdir /cdmount

mount /deb/cdrom /cdmount


파일 시스템 연결 해제(umount)

umount 명령은 이전에 마운트 된 파일 시스템의 연결을 해제한다.

프로세스가 파일 시스템에 있는 파일을 사용 중이거나 사용자가 파일 시스템에 있는 디렉터리에 있다면 umount 명령은 device is busy 메시지와 함께 실패한다.

해결 방법

#fuser -cu 디렉터리

만약 에러가 발생 할시에는 밑에 명령어로 한다.

#fuser -c

그러면 해당 프로세스가 나옴 kill 한 다음 다시 umount 하면 된다.

문법

  • umount [-option] [device | mount_point]

옵션

  • -a 마운트 된 모든 파일 시스템을 언마운트(umount) 한다.
  • -f 해당 파일 시스템을 사용하는 프로세스를 강제로 종료하고 파일시스템을 언마운트한다.

예문

  • $ umount -a /*마운트 된 모든 파일 시스템을 언마운트한다.*/
  • $ umount /mnt/cdrom /*/mnt/cdrom 디렉터리에 연결된 파일 시스템의 연결을 끊는다.*/

설명

  • 언마운트 대상인 디바이스 파일 또는 마운트 포인트를 지정한다. 루트 디렉터리는 /는 언마운트할 수 없다.

이 글이 도움이 되셨다면 공감 클릭을 부탁드립니다 :) 

Buy me a coffeeBuy me a coffee
LIST

+ Recent posts