SFTP 전송 스크립트의 변수

SFTP 전송 스크립트의 변수

나는 다음을 시도하고 있습니다 :

  • 데이터베이스 내보내기(아마도 .tgz를 만들 수도 있습니다. 이는 사소한 일입니다)
  • 전체 트리를 .tgz로 압축
  • 두 파일을 다른 서버의 명명된 디렉터리에 복사합니다.

~할 수 있다현재 가지고 있는 스크립트(bash)를 사용하여 이 모든 작업을 수행하세요. 하지만 자동화하려는 경우에는 더 많은 자동화가 필요합니다.

지금 이 순간 나는

  • 오늘 날짜로 디렉토리 만들기
  • mysqldump 해당 날짜가 포함된 이름을 가진 파일로 데이터베이스를 덤프합니다.
  • 오늘 날짜가 포함된 이름으로 디렉토리 트리의 .tgz를 다시 생성합니다.
  • sftp를 통해 서버에 연결합니다(또는 scp는 중요하지 않습니다... Windows(s)ftp(s) 서버입니다)
  • (현재 정적) 파일을 (현재 정적) 디렉토리에 업로드
  • SFTP 서버를 종료하고 업로드 상태를 내보냅니다.

sftp 서버에 연결하기 전에 두 파일 이름을 변수로 변환하여 "put $filename1" 등을 말할 수 있습니까?

답변1

모든 POSIX 쉘(및 포함 bash)에서 다음과 같은 명령을 사용할 수 있습니다.

# Today's date
today=$(date +'%Y-%m-%d')

# Create directory
mkdir "$today"

# Dump SQL backup
mysqldump … > "$today/sqlbackup.$today.sql"

# Make a tarball
tar cf "$today.tgz" "$today"

# Transfer file
scp -p "$today.tgz" remoteHost:

# Get a status report from the immediately preceding command
echo "Status is $? (0=good)"

관련 정보