File8 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.. Programming/Groovy 2012. 3. 9. 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.. Programming/Groovy 2012. 3. 6. Groovy : 하위 디렉토리의 모든 파일 출력하기 Groovy에서 하위 디렉토리의 모든 파일을 출력하는 방법을 알아보자. 인터넷에서 검색하면 금방 나오는 내용이지만, 일단 적어둔다. new File("C:\\").eachFileRecurse { filename -> println "Filename: $filename"} Programming/Groovy 2012. 3. 5. (Ruby) 파일(디렉토리)이름에 특정 문자열이 포함된 목록 출력하기 Ruby에서 파일(디렉토리)이름에 특정 문자열이 포함된 목록 출력하기위해서 아래와 같이 하면 된다. Unix(Linux)/Cygwin 에서는 기본적인 도구만으로도 쉽게 할 수 있지만, 그런 환경에 안되는 곳에서는 유용하다. 아주 사소한 팁이지만, 이런 것이 여러가지가 모이면, 나중에 큰 도움이 될 것이다. ^^# -*- coding: cp949 -*-require 'find' $dirlist = ["C:\\"]$sub_string = "애니메이션" $dirlist.each() do |dirname| puts dirname if dirname.include?($sub_string) Find.find(dirname) do |file| next if file == nil next if n.. Programming/Ruby 2011. 10. 27. Python : 10MB 이상의 파일중에서 중복된 파일 찾기 PHP, Ruby 에 이어서, Python 에서도 중복파일 찾기를 만들어보았다. # -*- coding: cp949 -*- # 버전 3.2.2 이상 from operator import itemgetter from hashlib import md5 import os TARGET_DIR = "M:\\PATH\\TO\\특정디렉토리" LIMITED_SIZE = 10*(1024*1024) # 10MB def md5sum(filename, buf_size=4068): m = md5() with open(filename, 'rb') as f: data = f.read(buf_size) while data: m.update(data) data = f.read(buf_size) return m.hexdigest() d.. Programming/Python 2011. 7. 12. (Ruby) 10MB 이상의 파일중에서 중복된 파일 찾기 아래 코드에서 파일에 대한 MD5SUM 을 구하기 위해서 주석 처리한 부분을 대신 사용할 수 도 있다. 인터넷에서 찾아보면 이렇게 되어 있는 경우가 많은데, 이렇게 하면 메모리를 많이 잡아먹는 문제가 발생한다. 반드시 Digest::MD5.file().hexdigest 를 이용해야만 적은 메모리를 사용하면서 원활하게 동작되니 주의하기 바란다.# -*- coding: cp949 -*-require 'find'require 'digest/md5' file_list = Array.newFind.find("C:\\") do |path| if File.file?(path) and File.size(path) > 10_000_000 # digest = Digest::MD5.hexdigest(File.read.. Programming/Ruby 2011. 5. 17. (PHP) 10MB 이상의 파일중에서 중복된 파일 찾기 PHP가 처음에는 웹프로그래밍을 위해서 만들어졌지만, 지금은 CLI 를 지원함으로써, 일반 General Language 로써의 면모도 갖추고 있다. 그러므로, 시스템 관리/일반 어플리케이션 개발 등에도 널리 활용할 수 있다. 필자는 서버 관리를 주로 하고 있으므로, 시스템 관리를 위한 스크립트를 가끔 작성해야 하는데, 이번에는 PHP로 해보았다. 파일서버 관리를 위해서 주기적으로 오래되거나 필요없는 파일들을 삭제해주어야 하는데, 이 중에서도 중복되는 파일을 제거해주는 것이 꽤 효과적이다. 내가 지울수 있는 권한은 없으니, 중복파일 목록을 사용자들에게 주고 직접 지우도록 하면 그나마 쬐끔 용량을 확보하는데 도움이 된다.아래는 10MB 넘는 파일중에서 중복된 파일을 찾아서 파일에 결과물을 남기도록 하였다... Programming/PHP 2011. 5. 4. JSP 파일 업로드 개요 "최범균의 JSP 2.0 프로그래밍" 이라는 책의 내용중 파일업로드 하는 부분이 나오는데, 해당 라이브러리의 버전이 오래된 것이어서 테스트에 약간의 문제가 있었습니다. 이에 최신 버전으로 테스트할 수 있는 예제 소스를 정리해보았습니다. Java의 파일 업로드 모듈로 많이 사용되는 Apache commons fileUpload 의 최신 버전은 2008년 12월 31일 현재 1.2.1 입니다.또한, FileUpload 는 commons-io 1.3.2 에 의존적입니다. 예제 ◎ fileUploadForm.jsp 파일1: 파일2: 파일3: 파라미터1: 파라미터2: 파라미터3: ◎ processFileUpload.jsp 0 ) { int idx = fileItem.getName().lastIndexOf(".. Programming/Java 2008. 12. 31. 이전 1 다음