쉘 스크립트 문의 드립니다.

Mabuk의 이미지

리눅스 초보자 입니다.
회사 일로 쉘 스크립트를 작성해야 하는데..
문제는 제가 거의 아는 것이 없습니다...ㅜㅜ

작성해야 할 스크립트는...이겁니다..

FTP를 통해서 지정 폴더에 파일이 들어옵니다. (파일 이름은 시간으로 표시되어집니다. ex) YYYYMMDD_HHMMSS.txt)
그러면 지정 폴더에 들어온 (생성된) 파일을 Import 를 시켜주어야 합니다. (명령어는 지정되어져 있습니다.)
Import를 시키고 나면, 해당 파일은 다른 폴더로 이동 시킵니다. (백업 하는 거죠..)

이런 내용을 .sh 파일을 작성하고 해당 .sh 파일을 Crontab에서 일정 주기로 돌릴 예정입니다..

여기저기 찾아보고 했는데 워낙 기초가 없는데다가..시간이 촉박하니.. 머리만 복잡해지네요.ㅠㅠ

고수님들의 따뜻한 손길 부탁드립니다..

익명 사용자의 이미지

crontab -e

01 */1 * * * /where/script.sh > $HOME/script.log 2>&1

매시간 01분에 script.sh 실행 및 홈 디렉토리에 로그 생성

==== script.sh ====

#!/bin/bash

WORK_DIR="파일이 들어오는 지정 폴더"
BACKUP_DIR="백업 폴더"

cd $WORK_DIR

for x in `ls *.txt`; do
IMPORT_CMD $x
mv $x $BACKUP_DIR/$x
done

chanik의 이미지

저도 거의 같은 방식의 cron 작업을 만들어 쓰고 있습니다. 제가 겪은 시행착오를 바탕으로,
익명님이 올려주신 스크립트에서 세 군데의 내용을 수정/추가해봤으니 참고하시기 바랍니다.

#!/bin/bash
 
WORK_DIR="파일이 들어오는 지정 폴더"
BACKUP_DIR="백업 폴더"
 
# [1] 업로드된 파일이 없을 경우 와일드카드(*.txt)가 확장되지 않기 때문에
#     '*.txt'가 파일명으로 간주되어 for loop이 동작하게 되는 문제 해결.
shopt -s nullglob
 
cd $WORK_DIR
 
# [2] `ls *.txt` 식으로 처리하면, 와일드카드(*.txt)가 확장되지 않을때 문제가 생길 수 있음.
#     nullglob 설정시 `ls` 가 되므로 와일드카드와 무관하게 디렉토리 내의 모든 파일에 대해 loop 실행되는 문제 발생.
for x in *.txt; do
  IMPORT_CMD $x
  # [3] IMPORT 명령 성공시에만 백업폴더로 이동시킴. TODO: IMPORT 명령 오류코드 확인
  [ $? -eq 0 ] && mv $x $BACKUP_DIR/$x
done

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.