最新版 |
編集中の文章 |
1行目: |
1行目: |
− | == てぷノートのデータのバックアップ ==
| + | == cronジョブ設定 == |
− | === 概要 ===
| |
− | * UbuntuサーバーのPostgresのtep5_productionをバックアップする
| |
− | * 毎日午前0時(0時00分)と午後12時(12時00分)に実行されるようにスケジュールした
| |
− | * plain形式、テキスト形式のSQLスクリプトとしてデータベースの内容をバックアップ
| |
− | | |
− | === タイムゾーンを確認する ===
| |
− | timedatectl status
| |
− | | |
− | サーバーのタイムゾーンを日本時間(JST)に設定するには、以下のコマンドを使用する
| |
− | | |
− | sudo timedatectl set-timezone Asia/Tokyo
| |
− | | |
− | === cronジョブ設定 ===
| |
| ユーザーごとのcronジョブは、各ユーザーが自分自身のcronジョブを設定 | | ユーザーごとのcronジョブは、各ユーザーが自分自身のcronジョブを設定 |
| crontab -e | | crontab -e |
27行目: |
14行目: |
| > ~/dump_data/$(date +\%Y-\%m-\%d_\%H:\%M:\%S).sql: ダンプデータを指定されたディレクトリに保存します。$(date +\%Y-\%m-\%d_\%H:\%M:\%S)の部分は、現在の日時を取得し、その日時をファイル名に使用していることを示しています。例えば、2023-01-01_12:34:56.sqlのような形式</nowiki> | | > ~/dump_data/$(date +\%Y-\%m-\%d_\%H:\%M:\%S).sql: ダンプデータを指定されたディレクトリに保存します。$(date +\%Y-\%m-\%d_\%H:\%M:\%S)の部分は、現在の日時を取得し、その日時をファイル名に使用していることを示しています。例えば、2023-01-01_12:34:56.sqlのような形式</nowiki> |
| | | |
− | ログの確認
| + | == tepnote backup == |
− | $ grep CRON /var/log/syslog
| |
− | | |
− | === ローカルからリモートに接続しコピーする === | |
| ローカルのMacBookにUSBを挿して移動する | | ローカルのMacBookにUSBを挿して移動する |
| % cd /Volumes | | % cd /Volumes |
37行目: |
21行目: |
| | | |
| % cd 'USBメモリー名' | | % cd 'USBメモリー名' |
− |
| |
− | % cd 'ディレクトリ名'
| |
| | | |
| リモートマシンからUSBメモリーにディレクトリをコピーする | | リモートマシンからUSBメモリーにディレクトリをコピーする |
| % scp -r jq:/home/jq/dump_data . | | % scp -r jq:/home/jq/dump_data . |
− |
| |
− | 新しいファイルのみコピーする
| |
− | % rsync -av --ignore-existing jq:/home/jq/dump_data/ .
| |
− |
| |
− | === バックアップコマンドをスクリプトに書いて実行プログラムにする ===
| |
− | homeにbinディレクトリを作りプログラムを置く
| |
− | <nowiki># binディレクトリが存在しない場合は作成
| |
− | mkdir -p bin
| |
− |
| |
− | # binディレクトリに移動
| |
− | cd bin</nowiki>
| |
− |
| |
− | ファイルを用意する
| |
− | vim usb_sync_tep_dump.sh
| |
− |
| |
− | シェルスクリプトを書く
| |
− |
| |
− | <nowiki>#!/bin/bash
| |
− |
| |
− | # USBメモリがマウントされているディレクトリに移動
| |
− | cd /Volumes/'USBメモリー名'
| |
− |
| |
− | # ディレクトリに移動
| |
− | cd 'ディレクトリ名'
| |
− |
| |
− | # rsyncコマンドを実行
| |
− | rsync -av --ignore-existing jq:/home/jq/dump_data/ .
| |
− | </nowiki>
| |
− |
| |
− | 実行権限を与える
| |
− | chmod +x usb_sync_tep_dump.sh
| |
− |
| |
− | bin ディレクトリへのパスを ~/.bashrc または ~/.bash_profile または ~/.zshrc などの設定ファイルに追加する
| |
− | echo 'export PATH=$PATH:/Users/jq/bin' >> ~/.zshrc
| |
− |
| |
− | 設定を反映させる(パスの追加、設定の反映は一度でいい。別のプログラム新しいプログラムを置いても有効。
| |
− | source ~/.zshrc
| |
− |
| |
− | この手順によって、/Users/jq/bin ディレクトリ内にあるスクリプトが、どのディレクトリからでも実行できるようになる
| |
− | % usb_sync_tep_dump.sh
| |
− |
| |
− | シェルの確認方法
| |
− | <nowiki>% ls -a ~ | grep .zshrc
| |
− |
| |
− | .zshrc
| |
− | </nowiki>
| |
− |
| |
− | 注意
| |
− | 変更は現在のシェルセッションに対してのみ有効。新しいターミナルセッションを開始するか、既存のセッションを再起動することで、変更がすべてのセッションに反映される。
| |
− |
| |
− | === ローカルで予約する ===
| |
− | cronの設定を編集
| |
− | % crontab -e
| |
− |
| |
− | エディタが開くので、次を追加する。毎日12:30と00:30にスクリプトを実行する設定。
| |
− |
| |
− | MacOSでは >/tmp/stdout.log 2>/tmp/stderr.logを書かないとログが出力されない。
| |
− |
| |
− | 30 0,12 * * * /bin/bash /Users/jq/bin/usb_sync_tep_dump.sh >/tmp/stdout.log 2>/tmp/stderr.log
| |
− |
| |
− | 確認
| |
− | crontab -l
| |
− |
| |
− | ログの確認
| |
− | log show --process cron
| |
− |
| |
| | | |
| | | |
| | | |
| [[Category:memo|{{PAGENAME}}]] | | [[Category:memo|{{PAGENAME}}]] |