ねむすぎノート
トップ
メニュー
一覧
検索
🌙
pukiwiki1.5/auto_backup
をテンプレートにして作成
開始行:
#title(バックアップ作業を自動実行する)
#contents
** backup_note.sh [#ff40d822]
- /home/nemusg/domains/note.nemusg.com を丸ごと複製
- コピー先は note.nemusg.com.YYMMDD
-- 例:note.nemusg.com.260717
- cp -aを使うため、ファイルのパーミッションや更新日時を維持
- 同じ日付のバックアップがすでにある場合は、再作成しない
- コピーに失敗した場合は異常終了
- コピー途中でできた不完全なバックアップフォルダは削除
- コピー完了後、バックアップ最上位フォルダの日時を作成日...
- 180日より古い note.nemusg.com.YYMMDD 形式のバックアップ...
#code_x{{
#!/bin/sh
BASE="/home/nemusg/domains"
SRC="$BASE/note.nemusg.com"
DST="$BASE/note.nemusg.com.$(date '+%y%m%d')"
if [ ! -d "$SRC" ]; then
echo "ERROR: Source directory not found: $SRC"
exit 1
fi
if [ -e "$DST" ]; then
echo "Already exists: $DST"
else
if ! cp -a "$SRC" "$DST"; then
echo "ERROR: Backup failed. Removing incomplete b...
rm -rf "$DST"
exit 1
fi
# cp -aで引き継がれた古い日時を、バックアップ作成日時...
touch "$DST"
echo "Backup completed: $DST"
fi
# 作成から180日を超えたバックアップを削除
find "$BASE" \
-maxdepth 1 \
-type d \
-name 'note.nemusg.com.[0-9][0-9][0-9][0-9][0-9][0-9]...
-mtime +180 \
-print \
-exec rm -rf {} \;
echo "Old backups cleanup completed."
exit 0
}}
** CRONジョブの設定 [#b64b5f8a]
毎週日曜に実行する場合
#code_x{{
分 時 日 月 曜日
0 4 * * 0
/bin/sh /home/nemusg/backup_note.sh
}}
** 文法チェック [#u95403b2]
何も表示されなければOK
/bin/sh -n ~/backup_note.sh
** 手動で実行する [#za6d77e6]
ssh接続したターミナルで下記を入力
~/backup_note.sh
** 手動でtgzを作る [#l7c7c0c3]
tgzにすると自動削除されない
#code_x{{
tar -czf /home/nemusg/domains/note.nemusg.com.260717.tgz \
-C /home/nemusg/domains \
note.nemusg.com.260717
}}
終了行:
#title(バックアップ作業を自動実行する)
#contents
** backup_note.sh [#ff40d822]
- /home/nemusg/domains/note.nemusg.com を丸ごと複製
- コピー先は note.nemusg.com.YYMMDD
-- 例:note.nemusg.com.260717
- cp -aを使うため、ファイルのパーミッションや更新日時を維持
- 同じ日付のバックアップがすでにある場合は、再作成しない
- コピーに失敗した場合は異常終了
- コピー途中でできた不完全なバックアップフォルダは削除
- コピー完了後、バックアップ最上位フォルダの日時を作成日...
- 180日より古い note.nemusg.com.YYMMDD 形式のバックアップ...
#code_x{{
#!/bin/sh
BASE="/home/nemusg/domains"
SRC="$BASE/note.nemusg.com"
DST="$BASE/note.nemusg.com.$(date '+%y%m%d')"
if [ ! -d "$SRC" ]; then
echo "ERROR: Source directory not found: $SRC"
exit 1
fi
if [ -e "$DST" ]; then
echo "Already exists: $DST"
else
if ! cp -a "$SRC" "$DST"; then
echo "ERROR: Backup failed. Removing incomplete b...
rm -rf "$DST"
exit 1
fi
# cp -aで引き継がれた古い日時を、バックアップ作成日時...
touch "$DST"
echo "Backup completed: $DST"
fi
# 作成から180日を超えたバックアップを削除
find "$BASE" \
-maxdepth 1 \
-type d \
-name 'note.nemusg.com.[0-9][0-9][0-9][0-9][0-9][0-9]...
-mtime +180 \
-print \
-exec rm -rf {} \;
echo "Old backups cleanup completed."
exit 0
}}
** CRONジョブの設定 [#b64b5f8a]
毎週日曜に実行する場合
#code_x{{
分 時 日 月 曜日
0 4 * * 0
/bin/sh /home/nemusg/backup_note.sh
}}
** 文法チェック [#u95403b2]
何も表示されなければOK
/bin/sh -n ~/backup_note.sh
** 手動で実行する [#za6d77e6]
ssh接続したターミナルで下記を入力
~/backup_note.sh
** 手動でtgzを作る [#l7c7c0c3]
tgzにすると自動削除されない
#code_x{{
tar -czf /home/nemusg/domains/note.nemusg.com.260717.tgz \
-C /home/nemusg/domains \
note.nemusg.com.260717
}}
ページ名:
トップ
新規
一覧
検索
最終更新
RSS