레이블이 tar인 게시물을 표시합니다. 모든 게시물 표시
레이블이 tar인 게시물을 표시합니다. 모든 게시물 표시

2014년 4월 5일 토요일

apache commons compress 이용한 TAR 생성

package test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
import org.apache.commons.compress.utils.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateFormatUtils;

public class CommonCompressTest{

/**
* @param args
*/
public static void main(String[] args) throws Exception {
String tarFilename = "c:\\tmp\\" + DateFormatUtils.format(System.currentTimeMillis(), "yyyyMMdd-HHmmss") + "-" + UUID.randomUUID().toString() + ".tar";
String baseDir = "C:\\tmp\\aa";
makeTar(tarFilename, baseDir, true);
}

public static void makeTar(String tarFilename, String baseDir, boolean removeIt) throws Exception {
final OutputStream os = new FileOutputStream(tarFilename);
TarArchiveOutputStream taos = new TarArchiveOutputStream(os);

List<File> fileList = getFileList(baseDir);
for (int ii = 0; ii < fileList.size(); ii++){
File entryFile = fileList.get(ii);

if (entryFile.isDirectory() == true)
continue;

String entryName = StringUtils.substring(entryFile.getAbsolutePath(), baseDir.length());

// System.out.println(entryName);
// System.out.println(entryFile);

TarArchiveEntry entry = new TarArchiveEntry(entryName);
byte[] buff = null;
if (entryFile.isFile()) {
buff = IOUtils.toByteArray(new FileInputStream(entryFile));
entry.setSize(buff.length);
}
taos.putArchiveEntry(entry);
if (entryFile.isFile()) {
taos.write(buff);
}
taos.closeArchiveEntry();

}
// System.out.println(fileList);
taos.close();
os.close();

System.out.println("baseDir=" + baseDir);
if (removeIt == true) {
org.apache.commons.io.FileUtils.deleteQuietly(new File(baseDir));
}
}

public static List<File> getFileList(String baseDir) {
List<File> fileList = new ArrayList<File>();

        File root = new File(baseDir);
        File[] list = root.listFiles();

        for ( File f : list ) {
            if ( f.isDirectory() ) {
            fileList.add(f);
            List<File> subFileList = getFileList(f.getAbsolutePath() );
            fileList.addAll(subFileList);
//                System.out.println( "Dir:" + f.getAbsoluteFile() );
            }
            else {
            fileList.add(f);
//                System.out.println( "File:" + f.getAbsoluteFile() );
            }
        }


return fileList;
}
}

2013년 2월 5일 화요일

AIX tips

** DNS 설정
vi /etc/resolv.conf

** AIX Toolbox for Linux Applications
http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html

** wget 설치

ftp ftp.software.ibm.com
Name> ftp
Password> 
ftp> cd aix/freeSoftware/aixtoolbox/RPMS/ppc/wget
ftp> bin
ftp> hash
ftp> get wget-1.9-2.aix5.1.ppc.rpm
ftp> quit
# rpm -hUv wget-1.9-2.aix5.1.ppc.rpm


** bash 설치
# wget ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/bash/bash-3.2-1.aix5.2.ppc.rpm
# rpm -hUv bash-3.2-1.aix5.2.ppc.rpm

** bash prompt
\t   HH:MM:SS 형식으로 나타나는 현재 시간
\d   "Weekday Month Date" 형식으로 나타나는 날짜 (eg, "Tue May 26")
\n   개행 문자(newline)
\s   쉘의 이름
\w   현재 작업 디렉토리
\W   현재 작업 디렉토리의 베이스 이름
\u   현재 사용자의 사용자 이름
\h   호스트 이름
\#   이 명령의 명령 번호
\!   이 명령의 히스토리 번호
\$   유효한 UID가 0이면 #, 아니면 $

export PS1="\u@\w# "


** 파일명 찾기 
  find . -name *.ear -type f

** 디렉토리 찾기 
   find . -name MedicineCell01 -type d

** 파일 보내기(mput), 가져오기(mget)
mget *  :  디렉토리를 제외한 나머지파일을 모두 가져온다.
mget -R BACKUP  : BACKUP이란 폴더 안에 존재하는 모든내용을 가져온다.
mget -R * : 역시 하위폴더까지 모두 가져온다.
mget *.html : 하위의 모든.html을 가지고 올경우
get -R *.html : 하위 디렉토리 하위의 것까지 가지고 올경우
파일 하나씩 'y'를 눌러야 하는 것이 번거롭다면 아래처럼 prompt 입력 후 명령을 내린다.
ftp> prompt
Interactive mode off.
ftp> mget * 


** tar exclude


ex.txt
--------------------------------------------------------------------------------
./medicine.war/file_dir
--------------------------------------------------------------------------------

tar -X ex.txt -cvf medicine.war.tar ./medicine.war


** WebSphere resource ref 추가


/WebSphere/AppServer/profiles/AppSrv01/config/cells/HostnameCell01/applications/earname.ear/deployments/earname/earname.war/WEB-INF/

web.xml
ibm-web-bnd.xmi

수정 ear 파일 재시작


/was80/WebSphere/AppServer/profiles/AppSrv01/config/cells/devoracle01Cell02/applications/medicineEAR.ear/deployments/medicineEAR/medicine.war/WEB-INF/

real /was80/WebSphere/AppServer/profiles/AppSrv01/config/cells/MedicineCell01/applications/medicineEAR.ear/deployments/medicineEAR/medicine.war/WEB-INF/



** 한글설정
애플리케이션 서버 > server1 > 프로세스 정의 > JVM(Java Virtual Machine) > 사용자 정의 특성 > client.encoding.override
KSC5601
애플리케이션 서버 > server1 > 프로세스 정의 > JVM(Java Virtual Machine) > 사용자 정의 특성 > file.encoding
KSC5601



** 첨부파일 경로
/user/homep/acpt_file/



** txstart.sh txstatus.sh 파일 상단에 아래내용 추가 필요

# 2013-02-06
export PATH=/usr/java5_64/bin:$PATH
export JAVA_HOME=/usr/java5_64












2013년 1월 31일 목요일

Using AIX tar exclude option


create "ex.txt" file
--------------------------------------------------------------------------------
./medicine.war/attachmemt
--------------------------------------------------------------------------------

tar -X ex.txt -cvf medicine.war.tar ./medicine.war

2011년 8월 3일 수요일

특정 디렉토리 제외하고 tar 하기

특정 디렉토리 제외하고 tar 하기
(일부 Unix 기종에서는 lst 파일이 압축될 목록에 없어야 적용이 된다고 함)

tar -cvf bstrip.tar -X exclude.lst ./*

# cat exclude.lst
./athtemp
./att_files