# [メタ情報] # 識別子: xserver内に圧縮zipを作成_exe # システム名: xserver内に圧縮zipを作成。毎日0:05plugins 0:10themes 0:15uploadをXserverのCronにて実行。 # 技術種別: Misc # 機能名: zip作成 # 使用言語: ShellScript # 状態: 実行用 # [/メタ情報] 要約:WordPress の各ディレクトリ(plugins / themes / uploads / public_html)をまとめて ZIP 圧縮するための4つのシェルスクリプトの説明。各スクリプトは対象フォルダを指定し、出力先 zip_files フォルダを自動生成し、.DS_Store を削除後に zip -r で圧縮する。public_html 用スクリプトでは PATH を明示し、public_html 直下全体を圧縮するが、mmedia と pmedia フォルダのみ除外してバックアップ用 ZIP を生成する構成となっている。 Xserverに付属するサービスであるCron設定を使い、毎日0:05plugins 0:10themes 0:15upload 0:30public_htmlにて実行。 スクリプトはXserver内に置く、plugins themes uploads public_html(mmedia pmediaを除外)を圧縮する。 /xserver_scripts compress_plugins.sh /home/xxxxxxxx/xserver_scripts/compress_plugins.sh #!/bin/bash # 圧縮したいフォルダのパス SOURCE_FOLDER="/home/xxxxxxxx/xxxxxxxx.com/public_html/wp-content/plugins" # zipファイルの置き場所と名前 OUTPUT_FOLDER="/home/xxxxxxxx/xxxxxxxx.com/public_html/zip_files" OUTPUT_FILE="${OUTPUT_FOLDER}/zip_plugins.zip" # 出力フォルダが存在しない場合、作成 if [ ! -d "$OUTPUT_FOLDER" ]; then mkdir -p "$OUTPUT_FOLDER" fi # 不要な .DS_Store ファイルを削除 find "$SOURCE_FOLDER" -name ".DS_Store" -delete # zipファイルの作成(フォルダ構造を保持し、.DS_Storeを除外) zip -r "$OUTPUT_FILE" "$SOURCE_FOLDER" -x "*.DS_Store" # 結果を表示 if [ $? -eq 0 ]; then echo "フォルダを正常に圧縮しました: $OUTPUT_FILE" else echo "圧縮に失敗しました。" fi compress_themes.sh /home/xxxxxxxx/xserver_scripts/compress_themes.sh #!/bin/bash # 圧縮したいフォルダのパス SOURCE_FOLDER="/home/xxxxxxxx/xxxxxxxx.com/public_html/wp-content/themes" # zipファイルの置き場所と名前 OUTPUT_FOLDER="/home/xxxxxxxx/xxxxxxxx.com/public_html/zip_files" OUTPUT_FILE="${OUTPUT_FOLDER}/zip_themes.zip" # 出力フォルダが存在しない場合、作成 if [ ! -d "$OUTPUT_FOLDER" ]; then mkdir -p "$OUTPUT_FOLDER" fi # 不要な .DS_Store ファイルを削除 find "$SOURCE_FOLDER" -name ".DS_Store" -delete # zipファイルの作成(フォルダ構造を保持し、.DS_Storeを除外) zip -r "$OUTPUT_FILE" "$SOURCE_FOLDER" -x "*.DS_Store" # 結果を表示 if [ $? -eq 0 ]; then echo "フォルダを正常に圧縮しました: $OUTPUT_FILE" else echo "圧縮に失敗しました。" fi compress_uploads.sh /home/xxxxxxxx/xserver_scripts/compress_uploads.sh #!/bin/bash # 圧縮したいフォルダのパス SOURCE_FOLDER="/home/xxxxxxxx/xxxxxxxx.com/public_html/wp-content/uploads" # zipファイルの置き場所と名前 OUTPUT_FOLDER="/home/xxxxxxxx/xxxxxxxx.com/public_html/zip_files" OUTPUT_FILE="${OUTPUT_FOLDER}/zip_uploads.zip" # 出力フォルダが存在しない場合、作成 if [ ! -d "$OUTPUT_FOLDER" ]; then mkdir -p "$OUTPUT_FOLDER" fi # 不要な .DS_Store ファイルを削除 find "$SOURCE_FOLDER" -name ".DS_Store" -delete # zipファイルの作成(フォルダ構造を保持し、.DS_Storeを除外) zip -r "$OUTPUT_FILE" "$SOURCE_FOLDER" -x "*.DS_Store" # 結果を表示 if [ $? -eq 0 ]; then echo "フォルダを正常に圧縮しました: $OUTPUT_FILE" else echo "圧縮に失敗しました。" fi compress_public_html.sh /home/xxxxxxxx/xserver_scripts/compress_public_html.sh #!/bin/bash # --- PATH(cron 実行時のために必ず設定) --- export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" # --- 基本ディレクトリ設定 --- BASE_DIR="/home/xxxxxxxx/xxxxxxxx.com" SOURCE_DIR="public_html" # --- 出力フォルダと zip ファイル名 --- OUTPUT_FOLDER="${BASE_DIR}/backups/zip_files" OUTPUT_FILE="${OUTPUT_FOLDER}/zip_public_html.zip" # --- 出力フォルダが無ければ作成 --- mkdir -p "$OUTPUT_FOLDER" # --- public_html の1つ上へ移動 --- cd "$BASE_DIR" || exit 1 # --- 不要ファイル(.DS_Store)削除(任意) --- find "$SOURCE_DIR" -name ".DS_Store" -delete # --- ZIP 作成(mmedia / pmedia のみ除外) --- zip -r "$OUTPUT_FILE" "$SOURCE_DIR" \ -x "public_html/wp-content/mmedia/*" \ -x "public_html/wp-content/pmedia/*" \ -x "*/.DS_Store" # --- 結果表示 --- if [ $? -eq 0 ]; then echo "フォルダを正常に圧縮しました: $OUTPUT_FILE" else echo "圧縮に失敗しました。" fi