mysql 테이블 복사 및 삭제 쉘 스크립트 관련 질문

sw1004의 이미지

안녕하세요 제가 쉘 스크립트를 개발하면서 질문이 있어서 글을 남깁니다.

제가 매해 31일 11시 59분쯤에 해당 DB 테이블의 user_년도 테이블로 복사를 하고 기존의 user 데이터는 지워서

다음 년도의 데이터만 추가하는 스크립트를 작성 중입니다.

일단 DB 테이블을 복사 하고 그 다음에 if 조건문에서

echo "select * from USER where ID not in (select ID from USER_$TIME);" | mysql --login-path=swim study --column-names=0 의 쿼리문을 줘서 두 테이블이 동일한지 확인한 후 삭제를 하려고 합니다.

if 문에 -z 옵션을 줘서 null 값일 때 delete 쿼리문을 실행하려고 합니다.

아래의 스크립트 실행시 if문에서 unexpecte EOF while looking for matching '' 구문이 나와서 큰따옴표나 작은따옴표의 문제 같은데 바꿔봐도 같은 에러 메시지가 나와서 질문드립니다.

그리고 마지막줄에는 unexpectd end of file 메시지도 나와서 어떤 부분 때문에 에러가 발생하는지 알려주시면

감사하겠습니다.

#!/bin/bash

TIME=`date +%Y`
query=`echo "select count(*) from USER;" | mysql --login-path=swim study --column-names=0

echo "CREATE TABLE USER_$TIME like USER;" | mysql --login-path=swim study
echo "INSERT INTO USER_$TIME SELECT * FROM USER;" | mysql --login-path=swim study

if [ -z `echo "select * from USER where ID not in (select ID from USER_$TIME);" | mysql --login-path=swim study --column-names=0` ] ; then
echo "DELETE FROM USER ;" | mysql --login-path=swim study
fi

ymir의 이미지

unexpected eof 나 그와 유사한 에러가 뜨는 경우에는..
높은 확률로 파일이 DOS 파일이거나 non-printable 문자가 섞여 있는 경우가 많습니다.
file 명령으로 봤을 때, with CRLF line terminators 가 붙어 있거나..
ascii text 가 아닌 다른 내용이 붙어 있다면..
dos2unix 명령으로 unix 파일로 바꾸거나, 편집기에서 특수 문자를 찾아서 제거하세요.

일단 위처럼 살펴 봤는데, 파일에는 아무런 문제가 없다고 판단되면..
bash -x ./script.sh 과 같이 -x 옵션을 주고 실행해서 직접 디버깅 해보세요.

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.