728x90 반응형 전체 글217 Groovy : 수정된지 N일이 넘는 파일들 삭제하기 특정 디렉토리 밑에 있는 파일 중에서 일정시간이 지난 파일을 삭제하고자 할 때 필요한 스크립트이다. 파일 서버를 관리하다보면, 주기적으로 필요 없는 파일들을 삭제해야 하는데, Unix(Linux) 환경에서는 find, rm 등을 조합하여 사용할 수도 있다. 그런 것이 여의치 않고, 굳이 Groovy 를 이용하려고 할 때, 활용하면 좋겠다.final DAY_LIMIT = 2 // N일final TARGET_DIR = "./"println("[Deleted Files]\n")new File(TARGET_DIR).eachFileRecurse { file -> if( file.file ) { def lastModified = new Date(file.lastModified()) d.. 2012. 3. 9. Groovy : 클로져(반복자)에서 빠져나오기 보통의 반복문에서 중간에 빠져나오려면 break 를 사용하지만, 클로져(반복자)에서 break를 사용하면 에러가 발생한다. 다음 코드를 작성하여 실행해보면, 에러를 확인할 수 있을 것이다.10.times { item -> println item if(item == 6) break}이에 대한 대안으로는 Exception 을 사용하면 된다. 이제 다시 Exception 을 이용해서 클로져를 빠져나오는 코드를 보자. 좀 번거롭기는 하지만, 확실하게 break 와 같은 효과를 볼 수 있다.try { 10.times { item -> println item if(item == 6) throw new Exception("break") }} catch (e) {} 2012. 3. 7. Groovy : 100MB 이상의 파일중에서 중복된 파일 찾기 Groovy 에서도 100MB 넘는 파일 중에서 중복된 파일을 찾는 프로그램을 만들어보았다. 모든 언어를 공부하면서 만들어보는 것인데, MD5 Checksum 이 같으면 중복된 파일로 인식하고, 카운트하여 정렬하고 출력하도록 하였다. 파일에 대한 MD5 Checksum 기능이 없어서 직접 구현되었고, 이 부분을 제외하면 Ruby 와 거의 비슷하다.// -----------------------------------------------------------------------------// 100MB 이상의 파일중에서 중복된 파일 찾기// ----------------------------------------------------------------------------- import java.se.. 2012. 3. 7. Groovy : 파일 md5sum 구하기 Groovy에서 md5sum 을 구하려면, Java 의 MessageDigest 모듈을 이용해야 한다. 안타깝게도 file 에 대한 md5 checksum 을 구하는 부분은 구현되어 있지 않기 때문에 별도로 구현해야 한다. 다른 언어에서의 방법과 유사하므로 그리 어렵지는 않다. Java 의 모듈을 그대로 이용해야하기 때문에, 구현은 Java 의 그것과 거의 같다.import java.security.MessageDigest def md5sum(final file) { MessageDigest digest = MessageDigest.getInstance("MD5") file.withInputStream() { is -> byte[] buffer = new byte.. 2012. 3. 6. Groovy : 하위 디렉토리의 모든 파일 출력하기 Groovy에서 하위 디렉토리의 모든 파일을 출력하는 방법을 알아보자. 인터넷에서 검색하면 금방 나오는 내용이지만, 일단 적어둔다. new File("C:\\").eachFileRecurse { filename -> println "Filename: $filename"} 2012. 3. 5. NODE.JS : 파일 MD5SUM 구하기 기본 모듈 crypto 를 이용해서 파일의 md5sum 을 구하는 스크립트를 만들어보자. 별도로 제공이 안되므로 직접 만들어써야 한다. 일단 아래와 같이 만들어보면 md5 뿐만 아니라 sha1 에 대한 checksum 을 쉽게 구할 수도 있을 것이다. 동기IO를 이용한 방법 (파일을 조금씩 읽어서 처리하는 방법) => Windows 에서는 에러가 발생하고 제대로 실행되지 않는다. 원인을 찾아보려고 했으나, 알 수가 없다. 혹시 누구 아시는분? node.js v0.6.11 에서 문제가 있었으나, v0.6.12 에서 잘 되고 있다. var fs = require('fs'); var crypto = require('crypto'); var filename = 'walk_test.js'; function md5.. 2012. 2. 27. nvm 이용하여 여러 버전의 node.js 설치하기 node.js 에도 Ruby 의 rvm 와 비슷한 툴이 제공됩니다. 바로 nvm 이지요. 설치방법은 아래와 같습니다. (FreeBSD에서는 ./nvm/nvm.sh 를 열어서 make 를 gmake 로 바꾸어주고 사용합니다.) $ git clone git://github.com/creationix/nvm.git ~/.nvm $ echo 'source ~/.nvm/nvm.sh' >> ~/.profile; source ~/.profile $ nvm install v0.6.11 $ nvm use v0.6.11 $ nvm alias default v0.6.11 $ node -v v0.6.11 이외에도 아래의 툴들도 고려해볼 만 하니 살펴봐주세요. https://github.com/isaacs/nave https:.. 2012. 2. 23. more(less) ANSI Color 제대로 보여주기 보통 Linux 나 FreeBSD에서 ls 명령어를 이용하면 파일/디렉토리 속성에 따라서 다양한 ANSI Color 로 나오게 되어 있다. 목록이 좀 긴 경우, more (or less) 를 이용해서 한 화면씩 끊어서 보게 되는데, 어떤 경우, ANSI 제어문자가 그대로 나오며, 색깔이 전혀 표시되지 않는 경우도 발생하는데, 보는데 상당히 괴로워진다. 다음은 ls -al | more 를 실행한 화면이다. 이것을 Color가 제대로 나오게 하려면 more (or less) 에 -R 옵션을 추가해주면 된다. ls -al | more -R 과 같이 해주면 다음과 같이 정상적으로 색깔이 잘 나오게 될 것이다. 2012. 2. 17. FreeBSD 9.0 에서 pysqlite 설치 보통 pysqlite 를 설치하려면, pip install pysqlite 명령을 이용해서 쉽게 할 수 있다. 그러나, FreeBSD 9.0 에 pythonbrew를 이용해서 직접 python 을 설치한 경우에는 sqlite3 의 include, library 경로의 문제로 바로 되지 않는다. 이 때문에 직접 소스를 받아서, 올바른 경로를 설정하고 설치해주어야 한다. 설치 순서는 아래와 같다. $ pkg_add -r sqlite3 $ wget http://pysqlite.googlecode.com/files/pysqlite-2.6.3.tar.gz $ tar xvfz pysqlite-2.6.3.tar.gz $ cd pysqlite-2.6.3 $ vi setup.cfg include_dirs=/usr/loc.. 2012. 2. 15. 이전 1 ··· 12 13 14 15 16 17 18 ··· 25 다음 728x90 반응형