「Backup」の版間の差分

提供: wikipokpok
移動先: 案内検索
(バックアップスクリプトをまとめて実行プログラムにする)
(バックアップスクリプトをまとめて実行プログラムにする)
59行目: 59行目:
 
rsync -av --ignore-existing jq:/home/jq/dump_data/ .
 
rsync -av --ignore-existing jq:/home/jq/dump_data/ .
 
</nowiki>
 
</nowiki>
 +
 +
実行権限を与える
 +
chmod +x usb_sync_tep_dump.sh
 +
 +
bin ディレクトリへのパスを ~/.bashrc の設定ファイルに追加する
 +
echo 'export PATH=$PATH:/Users/jq/bin' >> ~/.bashrc
 +
 +
設定を反映させる
 +
source ~/.bashrc
 +
 +
この手順によって、/Users/jq/bin ディレクトリ内にあるスクリプトが、どのディレクトリからでも実行できるようになる
  
  
  
 
[[Category:memo|{{PAGENAME}}]]
 
[[Category:memo|{{PAGENAME}}]]

2023年12月2日 (土) 10:12時点における版

てぷノートのデータのバックアップ

概要

  • 毎日午前0時(0時00分)と午後12時(12時00分)に実行されるようにスケジュールした
  • plain形式、テキスト形式のSQLスクリプトとしてデータベースの内容をバックアップ

cronジョブ設定

ユーザーごとのcronジョブは、各ユーザーが自分自身のcronジョブを設定

crontab -e
0 0,12 * * * pg_dump -U jq tep5_production > ~/dump_data/$(date +\%Y-\%m-\%d_\%H:\%M:\%S).sql

上記の説明

0 0,12 * * *
毎日午前0時(0時00分)と午後12時(12時00分)に実行されるようにスケジュール
pg_dump: PostgreSQLデータベースのダンプを作成するためのコマンド。
-U jq: データベースに接続するためのユーザー名(ユーザーjq)。
tep5_production: ダンプを作成する対象のデータベース名。
> ~/dump_data/$(date +\%Y-\%m-\%d_\%H:\%M:\%S).sql: ダンプデータを指定されたディレクトリに保存します。$(date +\%Y-\%m-\%d_\%H:\%M:\%S)の部分は、現在の日時を取得し、その日時をファイル名に使用していることを示しています。例えば、2023-01-01_12:34:56.sqlのような形式

ローカルからリモートに接続しコピーする

ローカルのMacBookにUSBを挿して移動する

% cd /Volumes
% ls
% cd 'USBメモリー名'
% cd 'ディレクトリ名'

リモートマシンからUSBメモリーにディレクトリをコピーする

% scp -r jq:/home/jq/dump_data .

新しいファイルのみコピーする

% rsync -av --ignore-existing jq:/home/jq/dump_data/ .

バックアップスクリプトをまとめて実行プログラムにする

homeにbinディレクトリを作りプログラムを置く

# binディレクトリが存在しない場合は作成
mkdir -p bin

# binディレクトリに移動
cd bin

ファイルを用意する

vim usb_sync_tep_dump.sh

シェルスクリプトを書く

#!/bin/bash

# USBメモリがマウントされているディレクトリに移動
cd /Volumes/'USBメモリー名'

# ディレクトリに移動
cd 'ディレクトリ名'

# rsyncコマンドを実行
rsync -av --ignore-existing jq:/home/jq/dump_data/ .

実行権限を与える

chmod +x usb_sync_tep_dump.sh

bin ディレクトリへのパスを ~/.bashrc の設定ファイルに追加する

echo 'export PATH=$PATH:/Users/jq/bin' >> ~/.bashrc

設定を反映させる

source ~/.bashrc

この手順によって、/Users/jq/bin ディレクトリ内にあるスクリプトが、どのディレクトリからでも実行できるようになる