Saída de depuração

0

Eu tentei acelerar a importação de um grande conjunto de dados com uma pasta cheia de arquivos .sql

ls -rS *.sql | parallel -j16 mysql -uusername -ppassword dbname "<"

Logo depois de executar isso, recebo um erro:

ERROR 1146 (42S02) at line 65: Table 'dbname.some_table' doesn't exist
ERROR 1146 (42S02) at line 69: Table 'dbname.some_table_other' doesn't exist

Existe uma maneira simples de modificar esse arg de linha de comando para descobrir qual arquivo está gerando esse erro?

Eu tentei fazer um script que executa um sed na linha 65-69 de todos os arquivos, mas há muitos resultados para saber. Depois de determinar qual sql gerou o erro, posso soltá-lo e importá-lo novamente.

Resolvido: usado

ls -rS *.sql | xargs grep -i "dbname.some_table" | less

para rastrear onde foi chamado muito cedo

    
por Justin 07.09.2013 / 04:27

2 respostas

1

Tente executar este comando no seu diretório de dados da web:

find . -name "*.php" -print | xargs grep -i "dbname.some_table"

Isso examinará recursivamente todos os subdiretórios e arquivos apenas para arquivos com a extensão .php e, em seguida, imprimirá todas as linhas que contiverem o texto especificado em grep .

    
por 07.09.2013 / 04:40
0

Use --tag:

ls -rS *.sql | parallel --tag -j16 sql mysql://username:password@/dbname "<"
    
por 07.09.2013 / 13:47