2016년 3월 8일 화요일

네이버는 블로그스팟을 싫어하는 걸까?

네이버웹마스터도구에서 itrooms.blogspot.com 사이트 등록을 한지 일주일이 지났다.

그런데 색인가능 문서수가 0이다.

아직 게시글이 많이 없어서 무시를 하는건지 아니면 blogspot을 싫어하는 건지 웹마스터도구에 버그가 있는건지 참 알수가 없다.

blogspot.com 을 등록하기 전에 blogspot.kr 로 등록을 했었었는데 그때도 색인되는게 없어서 삭제하고 .com 을 등록한건데 하~~



수집을 하긴 하는거 같은데 색인 현황이 계속 0이다.

다른 블로그의 컨텐츠를 복사하기 붙여넣기로 좀? 게시글을 생성하긴 했지만 전부 그런 게시물은 아닌데도 말이다.
뭐가 문제일까?

2016.03.09
    오늘도 색인수 0개
2016.03.11
    싫어하는 이유가 있었군.
    원인 및 해결방법은 여기를 http://itrooms.tistory.com/108 참고하자.
2016.03.13
    11일 description 문제를 해결하고 네이버웹마스터도구의 색인현황 그래프이다.
    12일 부터 노출가능 문서 수가 증가를 하였다.

결론 : 네이버가 블로그스팟을 싫어하는게 아니라 블로그스팟이 description 메타태그에 대해서 자동으로 넣어주는 기능이 없어서 네이버봇이 이를 해석하지 못해서 나타난 현상이다.
구글봇은 description 속성이 없더라도 본문에서 내용을 분석하여 색인단어를 추출하지만 네이버봇은 그런 기능이 고려되지 않은 듯 하다.

2016년 3월 6일 일요일

자바스크립트 jQuery 메타태그 PHP .htaccess 사이트 리디렉션 방법

사이트 리디렉션(리다이렉션) 하는 방법

예전 홈페이지 주소로 유입되는 방문자를 신규 홈페이지로 이동시키고자할 때 사이트 리디렉트 처리하는 방법이다.
티스토리 블로그주소를 변경하였을때 응용하면 아주 유용할 것이다.

1. 자바스크립트로 리디렉션
<script type="text/javascript">
var r_url = "http://itrooms.tistory.com/";
window.location.replace(r_url);
</script>
서브도메인만 변경해서 이동시키려면 치환해서 넘겨주면된다.
r_url = r_url.replace('이전서브도메인', '신규서브도메인');

2. jQuery 리디렉션
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready( function() {
var r_url = "http://itrooms.tistory.com/";
$( location ).attr("href", r_url);
});
</script>

3. 메타 태그로 리디렉션
<meta http-equiv="refresh" content="0; url=http://itrooms.tistory.com/" />
content 안에 0은 초단위이고 3초 뒤에 이동시키려면 3을 적어주면 된다.

4. PHP 리디렉션
<?php
header('Location: http://itrooms.tistory.com/', true, 301);
exit();
?>
PHP는 서버단에서 처리되므로 HTTP 301 Moved Permanently status code 로 리디렉션이 가능하다.

5. .htaccess 리디렉션
Redirect 301 / http://itrooms.tistory.com/
아파치 httpd.conf 에서 사용할 수도 있고 .htaccess 에서도 가능하다.
HTTP 301 Moved Permanently status code 로 리디렉션이 가능

출처 : http://itrooms.tistory.com/97

아파치 이미지파일 로그 안나오게 하기

웹서버를 운영하다 보면 Apache log 가 엄청나게 많이 쌓인다.
logrotate 가 실행되고 있다면 어느 정도 로그가 정리가 되겠지만 아니라면 로그가 쌓여서 서버가 엄청 느려질 수도 있다.
로그를 완전히 안나오게 할 수도 있지만 이미지 관련 로그라도 줄여보자.

<VirtualHost *:80>
    ...
    SetEnvIfNoCase Request_URI "\.(swf|png|gif|jpg|ico)$" NO_LOG
    CustomLog logs/mydomain.com-access_log common env=!NO_LOG
    ...
</VirtualHost>
mod_setenvif 모듈이 사용가능한지 먼저 확인이 필요하다.
/etc/httpd/conf/httpd.conf 파일에서 아래 부분이 있는지 확인하자.
LoadModule setenvif_module modules/mod_setenvif.so
"\.(swf|png|gif|jpg|ico)$" 이 부분에 이미지파일은 아니지만 자주 사용되는 js, css 를 추가해줘도 된다.
=> "\.(swf|png|gif|jpg|js|css|ico)$"

▶ 아파치 재시작 없이 로그 지우기
cat /dev/null > /var/log/httpd/access_log
아파치 데몬이 수행중일대 rm 명령어로 로그를 지우면 그 이후로 로그가 기록되지 않는다.
아파치를 멈추고 rm 명령어로 지우고 다시 시작하던지 아니면 위와 같은 방법으로 해주던가 해야한다.

▶ 아파치 로그 안쌓이게 하기
ErrorLog /dev/null
CustomLog /dev/null common
httpd.conf 나 VirtualHost 에 위 내용을 넣고 아파치를 재시작 하면된다.

출처 : http://itrooms.tistory.com/91

2016년 3월 4일 금요일

블로그스팟(구글블로그) 장단점

구글웹마스터도구, 네이버웹마스터도구, 빙웹마스터도구

블로그RSS 등록을 여러군데 해두었는데도 검색유입이 전혀 없다.

물론 게시글이 몇개 없긴하지만 너무하다 싶을 정도로 썰렁하다.

구글블로그 vs 티스토리 장단점 비교

  장점

  • 자체 통계기능이 있어서 각 게시물의 조회수 파악 가능
  • 계정당 블로그 운영 가능 갯수 100개
  • 애드센스 등록 제공

  단점

  • 작성 에디터가 티스토리 보다 불편
  • 블로그운영 6개월이 지나야 애드센스 등록 가능
  • 검색노출이 잘 안됨

참고로 구글블로그의 사이트맵과 RSS피드 주소는 다음과 같다.

사이트맵 : 블로그명.blogspot.com/sitemap.xml
RSS주소 : 블로그명.blogspot.com/feeds/posts/default?alt=rss


구글블로그의 장점이 뭔가 궁금해 신규로 만들어 보았는데 아직 티스토리 보다 더 좋은 장점이 무엇인지 찾아볼 수가 없다.

애드센스를 달려고 해도 블로그를 만들어서 운영기간이 6개월 이하는 달지도 못한다.

뭐 아무튼 차차 알아보고 이 글에 일기형태로 히스토리를 남겨야겠다.


  • 2016.03.04
        오늘 페이지뷰 3건.. 나혼자 본것만 3건이지싶다~
        구글에서 검색을 해보면 분명히 검색결과엔 나오는데 유입이 안되네~
        블로그 편집메뉴에서 탭키가 안먹는다~ 스페이스바를 사용해야 되네~

검색노출이 잘 안되는 원인을 알았다.
원인 및 해결 방법은 여기를 http://itrooms.tistory.com/108 참고하자.

구글 네이버 이글루스 티스토리 블로그 비교로 이 글에서 조금 업데이트 된 내용은
여기에서 http://itrooms.tistory.com/106 확인하자.

2016년 3월 3일 목요일

리눅스 여러개의 파일에서 특정문자열 치환

리눅스 여러개의 파일에서 특정문자열 치환하기

find ./ -name "*.html" -exec perl -pi -e 's/찾는문자열/바꿀문자열/g' {} \;
find ./            경로를 지정할 수 있다. (원하지 않게 엉뚱한 파일까지 치환될 수도 있으니 경로를 지정해주자.)
-name "*.html"    확장자가 html 파일인 것만 찾으라고 지정했다. (경로지정과 마찬가지로 안전하게 확장자도 지정해주자.)
-exec perl        파일을 찾은뒤에 perl을 실행해 주라는 의미이다.
find ./ -name "*.html" -exec sed -i 's/찾는문자열/바꿀문자열/g' {} \;
pert 대신에 sed 명령어로 치환할 수도 있다.

특정 하나의 파일에서 치환은 vi 편집기에서 해줘도 된다.
:%s/찾는문자열/바꿀문자열/g

자주 사용하지 않아서 계속 잊어버린다.

출처 : http://itrooms.tistory.com/81

구글봇 및 검색봇 차단하여 트래픽 줄이기

구글봇 및 여러 검색봇들이 은근히 트래픽을 발생시키기도 한다. 이러한 검색엔진봇들을 차단하면 트래픽을 줄이는데 도움이 된다.

이러한 검색봇들에 의한 트래픽을 막는 방법중에 robots.txt 파일을 이용하는 방법이다.
물론 메타태그를 이용하는 방법도 있다.
robots.txt 파일은 도메인 루트 디렉토리에 위치하여야 한다. (index.html이 위치하는 곳)

robots.txt 파일을 아래의 방법으로 작성하여 웹서버에 ftp로 업로드하면 된다.

▶ 모든 검색봇 차단
User-agent: *
Disallow: /

▶ 모든 봇 허용
User-agent: *
Allow: /

▶ 구글봇 차단 (구글봇, 구글봇이미지, 구글봇모바일)
User-agent: Googlebot
Disallow: /

User-agent: Googlebot-Image
Disallow: /

User-agent: Googlebot-Mobile
Disallow: /

▶ 빙봇 차단
User-agent: bingbot
Disallow: /

▶ 네이버봇 차단
User-agent: Yeti
Disallow: /

▶ 특정 디렉토리만 차단
User-agent: *
Disallow: /특정디렉토리명

이 외에 다양한 검색봇들이 있다.
Baiduspider
meanpathbot
MJ12bot
MSIE
YandexBot
등등

robots.txt 로 차단을 했지만 무시하고 들어오는 봇들이 있다면 아파치 설정에서 차단해주면 된다.

.htaccess 파일에 아래 내용을 추가
SetEnvIfNoCase User-Agent "baidu" ban_bot
SetEnvIfNoCase remote_addr 차단IP ban_bot
Oder Allow,Deny
Allow from all
Deny from env=ban_bot
차단IP 에는 해당봇의 IP를 알아내어 적어주면 된다.

SetEnvIfNoCase remote_addr 192.168.123. ban_bot
Oder Allow,Deny
Allow from all
Deny from env=ban_bot
IP가 c class 대역이라면 aaa.bbb.ccc. 으로 적어주면 된다.

▶ 메타태그로 검색봇 차단
<meta name="robots" content="noindex,nofollow">
noindex,nofollow 대신에 none을 사용하여도 된다.
메타 태그에 위와 같이 적어줘도 무시하는 검색봇이 있다면 위의 아파치단에서 차단해주는게 제일 확실하다.

2016년 3월 2일 수요일

리눅스 반복 예약작업 cron crontab

리눅스 서버에서 특정 프로세스나 스크립트를 원하는 시간에 수행하기를 원할때 사용되는 데몬(crond)이다.

크론탭(crontab)은 스케줄러이다. /etc/crontab 파일에서 직접볼 수도 있다.

▶ 현재사용자 스케줄러 보기
# crontab -l

▶ 현재사용자 스케줄러 삭제
# crontab -r

▶ 현재사용자 스케줄러 등록
# crontab -e
작성은 vi 편집기와 동일하다.

crontab -e 명령어로 직접 등록할 수도 있지만 아래 디렉토리에 직접 파일을 생성해줘도 된다.

/etc/cron.d
여기에 아래의 작성방법대로 직접 파일을 생성해 놓으면 크론데몬이 알아서 수행해준다.
/etc/cron.daily
이 디렉토리는 매일 수행이 필요한 폴더이다. 쉘스크립트로 작성하여야 한다.
/etc/cron.hourly
이 디렉토리는 매시간 수행이 필요한 폴더이다. 쉘스크립트로 작성하여야 한다.
/etc/cron.monthly
이 디렉토리는 매월 수행이 필요한 폴더이다. 쉘스크립트로 작성하여야 한다.
/etc/cron.weekly
이 디렉토리는 매주 수행이 필요한 폴더이다. 쉘스크립트로 작성하여야 한다.

작성방법은 아래와 같이 하면 된다. crontab 또는 /etc/cron.d 에만 해당된다.
# 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
첫번째 : 분
두번째 : 시
세번째 : 일
네번째 : 월
다섯째 : 요일
여섯째 : 수행할 유저아이디
일곱째 : 수행할 명령어 또는 스크립트파일

아래는 root계정 기준 작성법이다.
일반사용자 계정은 유저아이디 부분은 입력하지 않아도 된다.

▶ 1분 간격으로 실행
* * * * * 유저아이디 명령어

▶ 홀수분 간격으로 실행
1-59/2 * * * * 유저아이디 명령어

▶ 짝수분 간격으로 실행
*/2 * * * * 유저아이디 명령어

▶ 5분 간격으로 실행
*/10 * * * * 유저아이디 명령어

▶ 매시 15분, 45분에 실행
15,45 * * * * 유저아이디 명령어
콤마를 구분으로 적을수 있다.

▶ 3시간 마다 30분에 실행
30 */3 * * * 유저아이디 명령어

▶ 매일 새벽 2시 20분에 실행
20 2 * * * 유저아이디 명령어
2 대신에 02로 적어도 된다.

▶ 매월 1일 새벽 1시에 실행
0 1 1 * * 유저아이디 명령어

▶ 월~금요일 아침 7시에 실행
0 7 * * 1-5 유저아이디 명령어

▶ 토, 일요일 아침 9시에 실행
0 9 * * 0,6 유저아이디 명령어

▶ 결과와 에러 출력없이 그리고 백그라운로 실행하기
* * * * * 유저아이디 명령어 /dev/null 2>&1 &

▶ 새벽6시 마다 서버시간 동기화 하기
0 6 * * * root /usr/bin/rdate -s time.bora.net && /sbin/clock -w

▶ 크론 허용 유저 등록
/etc/cron.allow 파일에 허용할 아이디를 추가

▶ 크론 거부 유저 등록
/etc/cron.deny 파일에 거부할 아이디를 추가

▶ 크론 수행 로그 파일
/var/log/cron 파일에 크론 수행한 로그가 기록된다.