기본 콘텐츠로 건너뛰기

11월, 2013의 게시물 표시

Windows cmd(command) ftp upload

ftp툴로 업로드를 하면 하나의 디렉터리에 파일이 많은 경우 파일 하나씩 업로드할 때마다 ls를 날려 반응이 점점 늦어진다.. 수만개 이상 파일이 되었을때는 ls없이 그냥 업로드 하는 것이 낫다. 그래서 DOS Prompt에서 여러개를 띄워 한 번에 날리는 방법을 선택하여 수십만개의 파일을 빠른 시간에 던지는 것이 가능했다. 우선 아래 코드를 lwftpupload.bat파일로 만든다. @echo off SET svraddr=ftp.littleworld.net SET svrlogin=root SET svrpwd=password SET svruppath=%2 SET localpath=%1 echo user %svrlogin%>ftpcmd.txt echo %svrpwd%>>ftpcmd.txt echo bin>>ftpcmd.txt echo prompt>>ftpcmd.txt echo cd %svruppath%>>ftpcmd.txt echo mput %localpath%\*.jpg>>ftpcmd.txt echo quit>>ftpcmd.txt echo on ftp -n -s:ftpcmd.txt %svraddr% 그리고 DOS Prompt에서 다음을 실행한다. D:\>lwftpupload.bat d:\inetpub\littleworld.net\image/*.jpg /littleworld.net/image 파일이 많은 경우 하위 디렉토리를 여러개 만들어서 DOS창을 여러개 띄운뒤에 같이 실행을 하면 10개 정도 띄워서 커맨드를 날리면 거의 10배 속도로 업로드가 된다. 단, 용량이 작은 이미지 파일의 경우 효율이 좋고 트래픽을 다 잡아먹는 경우는 창을 띄워도 한계가 있으니 갯수를 트래픽을 봐가면서 조절하는 것이 좋다.

[Linux/Shell] 프로세스 체크

특정 서비스가 자꾸 죽는 것이 발생하여 죽을때 포트가 막히거나 프로세스가 안보이게 되면 그걸 캐치해서 어딘가로 알리는 스크립트를 만들었다. 너무 간단해서 보완할 것은 많지만 급하게 처리해야하므로.. #!/bin/bash # 1433 포트(DB포트)를 확인해서 chkprocess.log 파일에 남김 netstat -antp | grep 1433 >chkprocess.log FILENAME=/root/chkprocess.log #파일이 있고, 파일 내용이 비어있지 않은경우 if [ -s $FILENAME ]; then         echo "ok" else #문제가 있는경우 간단하게 log를 쌓는 웹API를 호출         wget 'http://msp.littleworld.net/agent/aaa.asp?ltype=err&lsvc=lwweb&ltitle=service_process_down' #서비스가 떨어졌다면 특정 서비스 기동을 넣어도 됨         /usr/local/jakarta-tomcat-5.5.9/bin/startup.sh fi