📌 Explicação
O IEBCOPY
serve pra:
-
Copiar membros de uma biblioteca (PDS) para outra
-
Compactar bibliotecas (eliminando espaço desperdiçado)
-
Fazer backups de bibliotecas inteiras ou membros específicos
-
Migrar conteúdo entre bibliotecas de testes, produção, compilação etc.
🧰 Usos mais comuns
-
Backup de PDS antes de deploy
-
Cópia de programas fonte ou objetos de uma lib pra outra
-
Reorganizar bibliotecas que estão com muito espaço "morto"
-
Duplicar conjuntos de membros para alterações em paralelo
🧾 Sintaxe básica
//COPYPDS JOB (1234),'COBOL DICAS',
// CLASS=A,MSGCLASS=X
//*
//STEP01 EXEC PGM=IEBCOPY
//SYSUT1 DD DSN=CDICAS.PDS.ORIGEM,DISP=SHR
//SYSUT2 DD DSN=CDICAS.PDS.DESTINO,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(5,2,5)),UNIT=SYSDA,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800,DSORG=PO)
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
COPY OUTDD=SYSUT2,INDD=SYSUT1
/*
📂 Descrição dos DDs
-
SYSUT1 → biblioteca de origem (PDS existente)
-
SYSUT2 → biblioteca de destino (nova ou vazia)
-
SYSPRINT → log com o resultado da operação
-
SYSIN → comandos de controle (como COPY, SELECT, EXCLUDE, etc.)
💻 Exemplo prático: copiar membros específicos
//STEP01 EXEC PGM=IEBCOPY
//SYSUT1 DD DSN=CDICAS.PDS.SOURCE,DISP=SHR
//SYSUT2 DD DSN=CDICAS.PDS.TARGET,
// DISP=OLD
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
COPY OUTDD=SYSUT2,INDD=SYSUT1
SELECT MEMBER=(PROG001,PROG002)
/*
Esse exemplo copia apenas os membros PROG001
e PROG002
da SOURCE
para a TARGET
.
💥 Compactar PDS (Reorganizar)
//STEP01 EXEC PGM=IEBCOPY
//PDSORIG DD DSN=CDICAS.PDS.FONTE,DISP=OLD
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
COPY INDD=PDSORIG,OUTDD=PDSORIG
/*
Isso reorganiza a própria biblioteca, eliminando os espaços "fantasmas" deixados por exclusões de membros anteriores. É tipo um desfragmentador de disco.
⚙️ Regras
-
O
DSORG=PO
é obrigatório no DCB da biblioteca destino (SYSUT2
) se for criada nova. -
Não use para arquivos sequenciais. Pra isso, use o
IEBGENER
. -
Reorganizar (copy INDD=OUTDD) só funciona se DISP=OLD.
💡 Dicas
-
Sempre compacta PDS antes de liberar pra produção — evita abends por falta de espaço interno.
-
Quando fizer backup, pode combinar com data/hora no nome do PDS.
-
Muito usado em scripts de deploy automatizado.
✅ Conclusão
IEBCOPY
é o rei do PDS. Se você trabalha com COBOL, Assembler ou qualquer linguagem que use bibliotecas particionadas, esse utilitário é obrigatório. Serve pra copiar, compactar e organizar — e faz isso com precisão cirúrgica. Não tem desculpa pra não dominar.