Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions proc/Envia2SciELONetworkPadrao.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export PATH=$PATH:.


./scielo_network/main_generate_and_transfer_new_and_updated.bat ../bases ../bases/pdf
2 changes: 1 addition & 1 deletion proc/GeraPadrao.bat
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ echo GeraScielo.bat .. /scielo/web log/GeraPadrao.log adiciona
echo
echo Tecle CONTROL-C para sair ou ENTER para continuar...

GeraScielo.bat .. .. log/GeraPadrao.log adiciona
GeraScielo.bat .. .. log/GeraPadrao.log adiciona
3 changes: 3 additions & 0 deletions proc/GeraScielo.bat
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,6 @@ call batch/CopiaWork2Teste.bat ../bases-work ../bases
call batch/ManutencaoOff.bat ../bases

call batch/InformaLog.bat $0 dh ===Fim=== LOG gravado em: $INFORMALOG


./scielo_network/main_generate_and_transfer_new_and_updated.bat $2/bases $2/bases/pdf
28 changes: 28 additions & 0 deletions proc/scielo_network/InformaLog.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
export PATH=$PATH:.

rem scielo_network/InformaLog
rem Parametro 1: log file
rem Parametro 2: nome do batch

rem Inicializa variaveis
LOG_FILE=$1
SCRIPT_NAME=$2
PARAM_3=$3
PARAM_4=$4
PARAM_5=$5
PARAM_6=$6
PARAM_7=$7
PARAM_8=$8
PARAM_9=$9

rem Verifica parametros
call batch/VerifPresencaParametro.bat $0 @${SCRIPT_NAME} "nome do batch"
call batch/VerifPresencaParametro.bat $0 @${LOG_FILE} "log file"


echo `date '+%Y%m%d %H:%M:%S'` $2 $3 $4 $5 $6 $7 $8 $9 >> ${TIME_LOG}

echo `date '+%Y%m%d %H:%M:%S'` >> ${LOG_FILE}
echo [${SCRIPT_NAME}] >> ${LOG_FILE}
echo ${PARAM_3} ${PARAM_4} ${PARAM_5} ${PARAM_6} ${PARAM_7} ${PARAM_8} ${PARAM_9} >> ${LOG_FILE}
echo >> ${LOG_FILE}
62 changes: 62 additions & 0 deletions proc/scielo_network/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# scielo_network

## Objetivos

Enviar os metadados da coleção para o nó central para fornecer serviços no âmbito da rede SciELO.

Os metadados são de periódicos, fascículos e documentos, e lista de arquivos PDF dos documentos.


## Motivação

O envio de arquivos `.iso` atual apresenta muitos problemas, pois podem vir corrompidos.

Ausência nos metadados a informação dos PDFs correspondentes aos documentos e, esta informação é necessária para identificar os idiomas disponíveis dos documentos, principalmente quando têm tradução.


## Origem dos metadados

- `bases/title/title`
- `bases/artigo/artigo`
- `bases/pdf/*`


## Sobre os scripts

A partir de `bases/pdf/*` e do comando `find`, é obtida uma lista de pdfs no padrão:

```
../bases/pdf/<acron>/v17n1/v17n1a16-es.pdf
../bases/pdf/<acron>/v17n1/v17n1a04-es.pdf
../bases/pdf/<acron>/v17n1/v17n1a12-es.pdf
```

Esta lista é criada em um arquivo no diretório `temp/scielo_network`. E na sequência, é feita a transferência.

A partir de `bases/title/title`, gera um arquivo do tipo `*.id` com o utilitário `cisis/i2id` no diretório temporário `temp/scielo_network` e, na sequência, é feita sua transferência.

A partir de `scielo_network_in.txt`, obtido do ftp cadastrado e que contém a lista de PID + data de atualização do registro da base ISIS, é gerada uma lista com os documentos novos e/ou atualizados consultando `bases-work/artigo/artigo`. A partir da lista que contém os itens novos ou atualizados, um arquivo `artigo_*.id` é gerado no diretório temporário `temp/scielo_network` para cada documento usando o utilitário `cisis/i2id` é feita sua transferência.

A partir de `bases-work/artigo/artigo`, gera o arquivo `scielo_network_status.txt` contendo a lista de data de atualização do registro e PID de todos os documentos é feita sua transferência.


As credenciais das transferências podem ser obtidas de um dos arquivos:

- transf/Envia2MedlineLogOn.txt
- transf/Envia2SciELOFastLogOn.txt
- transf/Envia2SciELONetworkLogOn.txt

Cada transferência envia o arquivo em si, seu arquivo compactado e um arquivo `scielo_network_time.log` contendo acúmulo de data, hora e eventos ocorridos.

São executadas em concorrência as operações:

- geração dos arquivos `scielo_network_artigo_*.id`
- geração de `scielo_network_pdfs_list.txt`
- geração de `scielo_network_title.id`
- geração dos arquivos `scielo_network_i_*.id`
- geração dos arquivos `scielo_network_status.txt`


# Script proc/Envia2SciELONetworkPadrao.bat

Chama `scielo_network/main_generate_and_transfer_new_and_updated.bat` com os parâmetros adequados.
43 changes: 43 additions & 0 deletions proc/scielo_network/generate_id_from_article.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
export PATH=$PATH:.

rem scielo_network/generate_id_from_article
rem Parametro 1: temp path
rem Parametro 2: bases path
rem Parametro 3: key
rem Parametro 4: id filename

rem Inicializa variaveis
TMP_PATH=$1
BASES_PATH=$2
KEY=$3
ID_FILENAME=$4

rem Inicializa variaveis
LOGFILE=${TMP_PATH}/log_generate_id_from_article_${ID_FILENAME}.log

CISIS_DIR=cisis
ARTICLE_DB=${BASES_PATH}/artigo/artigo

call scielo_network/InformaLog.bat ${LOGFILE} $0 "BEGIN"
call scielo_network/InformaLog.bat ${LOGFILE} $0 $1 $2 $3 $4 $5 $6 $7 $8 $9

rem Verifica parametros
call batch/VerifPresencaParametro.bat $0 @${TMP_PATH} "temp path"
call batch/VerifPresencaParametro.bat $0 @${BASES_PATH} "bases path"
call batch/VerifPresencaParametro.bat $0 @${KEY} "key"
call batch/VerifPresencaParametro.bat $0 @${ID_FILENAME} "id filename"

call batch/VerifExisteArquivo.bat ${ARTICLE_DB}.mst

rem Generate and transfer scilista issue
call scielo_network/InformaLog.bat ${LOGFILE} $0 "In background generate and transfer ${ID_FILENAME}"
${CISIS_DIR}/mx null count=0 create=${TMP_PATH}/${ID_FILENAME} now -all
${CISIS_DIR}/mx ${ARTICLE_DB} "bool=${KEY}" append=${TMP_PATH}/${ID_FILENAME} now -all
call scielo_network/id_generate.bat ${TMP_PATH} ${TMP_PATH}/${ID_FILENAME} ${ID_FILENAME}.id

call batch/DeletaArquivo.bat ${TMP_PATH}/${ID_FILENAME}.mst
call batch/DeletaArquivo.bat ${TMP_PATH}/${ID_FILENAME}.xrf

call batch/ifErrorLevel.bat $? batch/AchouErro.bat $0 ftp: ${LOGFILE}
call scielo_network/InformaLog.bat ${LOGFILE} $0 "FINISHED"
call scielo_network/InformaLog.bat ${LOGFILE} $0 "LOGFILE: ${LOGFILE}"
40 changes: 40 additions & 0 deletions proc/scielo_network/generate_status.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
export PATH=$PATH:.

rem scielo_network/generate_id_from_article
rem Parametro 1: temp path
rem Parametro 2: bases path
rem Parametro 3: key
rem Parametro 4: id filename

rem Inicializa variaveis
TMP_PATH=$1
BASES_PATH=$2

OUTPUT_FILENAME=scielo_network_status.txt

rem Inicializa variaveis
LOGFILE=${TMP_PATH}/log_generate_status_${OUTPUT_FILENAME}.log

CISIS_DIR=cisis
ARTICLE_DB=${BASES_PATH}/artigo/artigo

call scielo_network/InformaLog.bat ${LOGFILE} $0 "BEGIN"
call scielo_network/InformaLog.bat ${LOGFILE} $0 $1 $2 $3 $4 $5 $6 $7 $8 $9

rem Verifica parametros
call batch/VerifPresencaParametro.bat $0 @${TMP_PATH} "temp path"
call batch/VerifPresencaParametro.bat $0 @${BASES_PATH} "bases path"

call batch/VerifExisteArquivo.bat ${ARTICLE_DB}.mst

rem Generate and transfer scilista issue
call scielo_network/InformaLog.bat ${LOGFILE} $0 "In background generate and transfer ${OUTPUT_FILENAME}"
${CISIS_DIR}/mx ${ARTICLE_DB} btell=0 "bool=tp=h" "pft=ref(mfn-1,v91),',',v880/" now | sort > ${TMP_PATH}/${OUTPUT_FILENAME}


rem Transfer output file
call scielo_network/transf.bat ${LOGFILE} ${TMP_PATH} ${OUTPUT_FILENAME} bin

call batch/ifErrorLevel.bat $? batch/AchouErro.bat $0 ftp: ${LOGFILE}
call scielo_network/InformaLog.bat ${LOGFILE} $0 "FINISHED"
call scielo_network/InformaLog.bat ${LOGFILE} $0 "LOGFILE: ${LOGFILE}"
41 changes: 41 additions & 0 deletions proc/scielo_network/id_generate.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
export PATH=$PATH:.

rem scielo_network/id_generate
rem Parametro 1: temp path
rem Parametro 2: isis database file without extension
rem Parametro 3: id filename

rem Inicializa variaveis
TMP_PATH=$1
MST=$2
ID_FILE=$3

LOGFILE=${TMP_PATH}/log_id_generate_${ID_FILE}.log
CISIS_DIR=cisis

call scielo_network/InformaLog.bat ${LOGFILE} $0 "BEGIN"
call scielo_network/InformaLog.bat ${LOGFILE} $0 $1 $2 $3 $4 $5 $6 $7 $8 $9

rem Verifica parametros
call batch/VerifPresencaParametro.bat $0 @${TMP_PATH} "temp path"
call batch/VerifPresencaParametro.bat $0 @${MST} "isis database file without extension"
call batch/VerifPresencaParametro.bat $0 @${ID_FILE} "id filename"

call batch/VerifExisteArquivo.bat ${MST}.mst


rem Generate id file
call scielo_network/InformaLog.bat ${LOGFILE} $0 "Create ${ID_FILE}"
${CISIS_DIR}/i2id ${MST} > ${TMP_PATH}/${ID_FILE}

call batch/VerifExisteArquivo.bat ${TMP_PATH}/${ID_FILE}

rem Transfer id file
call scielo_network/transf.bat ${LOGFILE} ${TMP_PATH} ${ID_FILE} bin


rem Register errors
call batch/ifErrorLevel.bat $? batch/AchouErro.bat $0 ftp: ${LOGFILE}

call scielo_network/InformaLog.bat ${LOGFILE} $0 "FINISHED"
call scielo_network/InformaLog.bat ${LOGFILE} $0 "LOGFILE: ${LOGFILE}"
105 changes: 105 additions & 0 deletions proc/scielo_network/main_generate_and_transfer_new_and_updated.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
export PATH=$PATH:.
export CIPAR=tabs/GIGA032.cip

rem scielo_network/main_generate_and_transfer_new_and_updated
rem Parametro 1: bases path
rem Parametro 2: bases/pdf path

rem Inicializa variaveis
BASES_PATH=$1
BASES_PDF_PATH=$2


rem Inicializa variaveis
CISIS_DIR=cisis
TMP_PATH=temp/scielo_network

LOGFILE=${TMP_PATH}/log_main_generate_and_transfer_new_and_updated.log
export INFORMALOG=${TMP_PATH}/log_errors.log
export TIME_LOG=${TMP_PATH}/scielo_network_time_`date '+%d'`_new_and_updated.log

ARTIGO=${BASES_PATH}/artigo/artigo
TITLE_MST=${BASES_PATH}/title/title
TITLE_ID=scielo_network_title.id
PDF_LIST=scielo_network_pdfs_list.txt

call batch/CriaDiretorio.bat ${TMP_PATH}
echo > ${TIME_LOG}

call scielo_network/InformaLog.bat ${LOGFILE} $0 "BEGIN"
call scielo_network/InformaLog.bat ${LOGFILE} $0 $1 $2 $3 $4 $5 $6 $7 $8 $9

rem Verifica parametros
call batch/VerifPresencaParametro.bat $0 @${BASES_PATH} "bases path"


rem Obtém scielo_network_in.txt
call scielo_network/transf.bat ${LOGFILE} ${TMP_PATH} scielo_network_in.txt bin get

rem Usa scielo_network_in.txt como indicativo
rem de que a colecao tem permissao para enviar os dados
rem lista de pid concatenado com a data de atualizacao v91
rem PID_YYYYMMDD
if [ -f ${TMP_PATH}/scielo_network_in.txt ]
then

rem ###########################################
rem Generate and transfer scielo_network_artigo_*
rem ###########################################
rem Gera uma base isis SELECTED_DOCS e a indexa
call scielo_network/InformaLog.bat ${LOGFILE} $0 "In background generate and transfer scielo_network_artigo_*"
cisis/mx seq=${TMP_PATH}/scielo_network_in.txt create=${TMP_PATH}/SELECTED_DOCS now -all
cisis/mx ${TMP_PATH}/SELECTED_DOCS "fst=1 0 v1/" fullinv=${TMP_PATH}/SELECTED_DOCS now -all

rem Usa a base SELECTED_DOCS indexada para identificar os documentos que são novos ou desatualizados
cisis/mx ${ARTIGO} btell=0 tp=h lw=9999 "pft=if l(['${TMP_PATH}/SELECTED_DOCS']s(ref(mfn-1,v91),',',v880)) = 0 then v880/ fi" now > ${TMP_PATH}/NOT_scielo_network_in.txt

rem Gera as bases e arquivos id dos documentos que são novos ou desatualizados
cisis/mx seq=${TMP_PATH}/NOT_scielo_network_in.txt lw=9999 "pft=if p(v1) then './scielo_network/generate_id_from_article.bat ${TMP_PATH} ${BASES_PATH} IV=',v1,'$ scielo_network_artigo_',v1/ fi" now > ${TMP_PATH}/NOT_IN_SCIELO_NETWORK.bat
chmod +x ${TMP_PATH}/NOT_IN_SCIELO_NETWORK.bat
nohup ${TMP_PATH}/NOT_IN_SCIELO_NETWORK.bat > ${TMP_PATH}/nohup.scielo_network_artigo.out&
call scielo_network/InformaLog.bat ${LOGFILE} $0 "Check ${TMP_PATH}/nohup.scielo_network_artigo.out"


rem ###########################################
rem Generate and transfer scielo_network_pdfs_list.txt
rem ###########################################
call scielo_network/InformaLog.bat ${LOGFILE} $0 "In background generate and transfer ${PDF_LIST}"
nohup scielo_network/pdfs_list.bat ${TMP_PATH} ${BASES_PDF_PATH} ${PDF_LIST} > ${TMP_PATH}/nohup.scielo_network_pdfs_list.out&
call scielo_network/InformaLog.bat ${LOGFILE} $0 "Check ${TMP_PATH}/nohup.scielo_network_pdfs_list.out"


rem ###########################################
rem Generate and transfer scielo_network_title.*
rem ###########################################
call scielo_network/InformaLog.bat ${LOGFILE} $0 "In background generate and transfer scielo_network_title.*"
nohup scielo_network/id_generate.bat ${TMP_PATH} ${TITLE_MST} ${TITLE_ID} > ${TMP_PATH}/nohup.scielo_network_title.out&
call scielo_network/InformaLog.bat ${LOGFILE} $0 "Check ${TMP_PATH}/nohup.scielo_network_title.out"


rem ###########################################
rem Generate and transfer scielo_network_i_*
rem ###########################################
rem Gera as bases e arquivos id dos issues dos documentos que são novos ou desatualizados
call scielo_network/InformaLog.bat ${LOGFILE} $0 "In background generate and transfer scielo_network_i_*"
cisis/mx seq=${TMP_PATH}/NOT_scielo_network_in.txt lw=9999 "pft=v1*1.17/" now | sort -u > ${TMP_PATH}/ISSUE_NOT_scielo_network_in.txt
cisis/mx seq=${TMP_PATH}/ISSUE_NOT_scielo_network_in.txt lw=9999 "pft=if p(v1) then './scielo_network/generate_id_from_article.bat ${TMP_PATH} ${BASES_PATH} Y',v1,'$ scielo_network_i_',v1/ fi" now > ${TMP_PATH}/ISSUE_NOT_IN_SCIELO_NETWORK.bat
chmod +x ${TMP_PATH}/ISSUE_NOT_IN_SCIELO_NETWORK.bat
nohup ${TMP_PATH}/ISSUE_NOT_IN_SCIELO_NETWORK.bat > ${TMP_PATH}/nohup.scielo_network_i.out&
call scielo_network/InformaLog.bat ${LOGFILE} $0 "Check ${TMP_PATH}/nohup.scielo_network_i.out"


rem ###########################################
rem Generate and transfer scielo_network_status.txt
rem ###########################################
rem Gera arquivo texto que contém data de atualização do registro e PID de cada documento
call scielo_network/InformaLog.bat ${LOGFILE} $0 "In background generate and transfer scielo_network_status.txt"
nohup ./scielo_network/generate_status.bat ${TMP_PATH} ${BASES_PATH} > ${TMP_PATH}/nohup.scielo_network_status.out&
call scielo_network/InformaLog.bat ${LOGFILE} $0 "Check ${TMP_PATH}/nohup.scielo_network_status.out"

fi


call batch/ifErrorLevel.bat $? batch/AchouErro.bat $0 ftp: ${LOGFILE}
call scielo_network/InformaLog.bat ${LOGFILE} $0 "FINISHED"
call scielo_network/InformaLog.bat ${LOGFILE} $0 "LOGFILE: ${LOGFILE}"
38 changes: 38 additions & 0 deletions proc/scielo_network/pdfs_list.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
export PATH=$PATH:.

rem scielo_network/pdfs_list
rem Parametro 1: temp path
rem Parametro 2: caminho da pasta bases/pdf
rem Parametro 3: somente nome do arquivo da lista de pdfs

rem Inicializa variaveis
TMP_PATH=$1
BASES_PDF_PATH=$2
PDF_LIST_NAME=$3

call scielo_network/InformaLog.bat ${INFORMALOG} $0 "FINISHED"
LOGFILE=${TMP_PATH}/log_pdfs_list.log

call scielo_network/InformaLog.bat ${LOGFILE} $0 "BEGIN"
call scielo_network/InformaLog.bat ${LOGFILE} $0 $1 $2 $3 $4 $5 $6 $7 $8 $9

rem Verifica parametros
call batch/VerifPresencaParametro.bat $0 @${TMP_PATH} "temp path"
call batch/VerifPresencaParametro.bat $0 @${BASES_PDF_PATH} "caminho da pasta bases/pdf"
call batch/VerifPresencaParametro.bat $0 @${PDF_LIST_NAME} "somente nome do arquivo da lista de pdfs"


rem Generates PDF list
call scielo_network/InformaLog.bat ${LOGFILE} $0 "Generates PDF list ${TMP_PATH}/${PDF_LIST_NAME}"

find ${BASES_PDF_PATH} -name "*.pdf" > ${TMP_PATH}/${PDF_LIST_NAME}

rem Transfer
call scielo_network/transf.bat ${LOGFILE} ${TMP_PATH} ${PDF_LIST_NAME} bin

rem Register errors
call batch/ifErrorLevel.bat $? batch/AchouErro.bat $0 ftp: ${LOGFILE}

call scielo_network/InformaLog.bat ${LOGFILE} $0 "FINISHED"
call scielo_network/InformaLog.bat ${LOGFILE} $0 "LOGFILE: ${LOGFILE}"

Loading