{"id":29195453,"url":"https://github.com/nabeky/mybackup","last_synced_at":"2026-04-17T06:33:25.917Z","repository":{"id":299455488,"uuid":"1003007391","full_name":"nabeky/MyBackup","owner":"nabeky","description":"easy personal backup Bash script for Ubuntu/WSL2 (Japanese)","archived":false,"fork":false,"pushed_at":"2025-06-21T14:01:52.000Z","size":149,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-02T05:04:28.382Z","etag":null,"topics":["bash"],"latest_commit_sha":null,"homepage":"https://blog.ahh.jp/?p=32334","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nabeky.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-16T13:33:16.000Z","updated_at":"2025-06-21T14:01:55.000Z","dependencies_parsed_at":"2025-06-16T17:41:38.326Z","dependency_job_id":"241e7464-7f1b-4558-b32b-8a0a30b808cd","html_url":"https://github.com/nabeky/MyBackup","commit_stats":null,"previous_names":["nabeky/mybackup"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nabeky/MyBackup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nabeky%2FMyBackup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nabeky%2FMyBackup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nabeky%2FMyBackup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nabeky%2FMyBackup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nabeky","download_url":"https://codeload.github.com/nabeky/MyBackup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nabeky%2FMyBackup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273728128,"owners_count":25157136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash"],"created_at":"2025-07-02T05:04:29.313Z","updated_at":"2026-04-17T06:33:25.876Z","avatar_url":"https://github.com/nabeky.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MyBackup (personal backup script)\n# 暗号バックアップスクリプト for Ubuntu Linux\n\nCopyright:\nMyBackup.sh Version 0.20250410\n(C)2025 quawaz,watanabe\n\nLisense:\nThis project is licensed under the MIT License\n\n2025/6, Ubuntu 24.04LTS, bash ver.5.2.21\n\n## Usage:\n定期＆手動お手軽暗号バックアップスクリプト\n\n**Tar/Zipで丸め暗号化、偽ファイル生成、外部ストレージや他ホストへアップロード、レポート報告、動的マウント**など\n普段のバックアップ用途でも手軽に使えるように配慮しました\n\n本ファイル、Config:欄 にて、事前設定しご利用ください\n\n貴方お好みに改修してお使いください\n\nUbuntu24.04LTS及びWSL2にて、動作確認しております\n\nパスワードが記載されるため権限設定は確実に！\nchmod 0700 ./MyBackup.sh\n\n* cronでの定期実行  \n    crontab -e  \n    (super user) sudoedit /etc/cron. (daily,monthry..)\n* logoff時の自動実行  \n    .bashrc:trap '/home/user/MyBackup.sh' EXIT\n* クイックバックアップ  \n    好きなタイミングで適当なDirをバックアップ  \n    MyBackup.sh ./pictures\n* 簡単解凍  \n    解凍も同じスクリプトで簡単  \n    MyBackup.sh ./buckup20250701.tar.gzc\n\n### 実行例（通常動作）\n![Image](https://github.com/user-attachments/assets/6f3615e1-e508-4fdb-9ca2-8797b1907cfd)\n\n### Usage画面\n![Image](https://github.com/user-attachments/assets/dad4cedb-c042-4741-9a0c-087d0bb2b018)\n\n### 設定用カラー表示\n![Image](https://github.com/user-attachments/assets/e31014a6-e900-4550-93fc-29b1c0338aa0)\n\n### 設定：ユーザー定義（MySQLダンプサンプル）\n![Image](https://github.com/user-attachments/assets/63f97527-f183-4035-8a96-1c73da597cd8)\n\n\u003e [!IMPORTANT]\n\u003e 通常、表示は行いませんので、実運用に移行する前は、“-v\"オプションを付けて、テストしてください(_DEBUGフラグもtrueを推奨。後述)\n\u003e \n\u003e 一部機能の利用には、別途パッケージ導入が必要になります\n\u003e \n\u003e 必要な場合、事前に導入ください\n\u003e \n\u003e mailutils、smbclient、curl、特殊なmount関連 など\n\u003e \n\u003e 各部の動作テスト用のオプションを用意しています\n\u003e \n\u003e –test-upload など\n\u003e \n\u003e 利用による結果には責任を負いません\n\u003e \n\u003e 利用者様の自己責任において、十分に留意の上ご利用ください\n\n## flow / 処理内容\n以下、処理の流れになります\n\n- モード切替\n  - マウント\n  - 空き容量確認\n  - 古いバックアップ削除\n  - Tar又はZip丸め\n  - Tar又はZip丸め(ユーザー定義*1)\n  - 暗号化\n  - Tar又はZip生成ファイル削除\n  - 他ホストへアップロード(scp/samba/ユーザー定義*2他)\n  - 生成ファイル削除\n  - 偽ファイル生成(default:off)\n\n### trap:EXIT\n\n- 後処理\n  - 書込フラッシュ\n  - アンマウント\n  - レポート(syslog/chat/mail/ユーザー定義*3他)\n  - ユーザー定義*4\n\n### trap:ERR\n\n  - エラー表示（DEBUG情報）\n\n※ 各工程のON/OFF可\n\n※ 途中でエラー時は終了(DEBUGモードによる)\n\n### ユーザー定義\n\n*1:fn_ex_build_balls()\n\n*2:fn_ex_upload()\n\n*3:fn_ex_report()\n\n*4:fn_ex_exit()\n\n## mount / マウント\n\n様々な保存先があるかと想定、セキュリティ的にも？マウント関連も制御出来るように致しました\n\n一般ユーザーで利用される場合は、予め /etc/fstab に設定が必要になります\n\nマウント後、空き容量確認などが行われます(ON/OFF可)\n\n後述のアップロード機能で、他ホストへ転送される場合は、これらは不要になります\n\n## output / 出力ファイル\n\n    [prefix][target dir name][time stamp][ext]\n\n    例) Backup_Document_20250101.tar.gzc\n    ※ 各部位変更可\n\n## decode / 手動による解凍\n\n生成したファイルを展開するには、先に復号化が必要になります(デフォルト設定の場合は以下)\n\n    -in 対象のファイル名\n\n    -out 出力ファイル名\n\n    openssl enc -d -aes-256-cbc -pbkdf2 -in xxx.tar.gzc -out xxx.tar.gz\n\n    (パスワード入力)\n\nその後、Tar又はZipにて展開します\n\nカレントに、ディレクトリが生成され、その中に展開されます\n\n(Tarは標準的な gzip 圧縮限定となります)\n\n    tar -xvf xxx.tar.gz\n\n    unzip xxx.zip\n\n*デフォルト設定は標準的な暗号化(AES/256bit)となります\n\n## 簡単解凍\n\n解凍も当スクリプトにて簡単に行う事が出来ます\n\nパスワードや、コマンドの引数などを再度調べ直す手間が省けます\n\nTarデフォルト設定という条件で、その場に簡単に解凍出来ます\n\n(既に設定済みのもので解凍を試みます、途中で変更された場合は不可能)\n\n複数指定が可能、オプション指定はありません\n\n_ez_decodeというディレクトリが作られ、その中に展開されます\n\n    例) ./MyBackup.sh ./xxxx.tar.gzc\n    例) ./MyBackup.sh ./*.tar.gzc\n\n## クイックバックアップ\n\n直接ディレクトリを指定して、バックアップを行えます\n\n予め設定された場所に保存されます\n\n複数指定が可能、オプション指定はありません\n\nディレクトリ毎に１ファイル生成されます\n\n    例) ./MyBackup.sh ./work\n    例) ./MyBackup.sh ./dir*\n\n## アップロード\n\n生成ファイルを他ホストなどへ転送（冗長）を行えます\n\n方法は以下の種類、他、ユーザー定義も指定できます\n\nアップロード後、ローカル生成ファイルを削除する事ができます\n\n通信経路上のセキュリティや、通信負荷も考慮してください\n\n事前にセキュリティ設定やコマンド導入が必要になります\n\n–test-upload にて動作テストが行えます\n\n      scp\n          SSHファイル転送(scp)\n      samba\n          Windowsファイル送信(smbclient)\n      http\n          HTTPによるアップロード(curl)\n      ftp\n          FTPによるファイル転送(curl)\n      sftp\n          SFTPによるファイル転送(sftp)\n      rsync\n          ファイル同期(rsync)\n      mail\n          メール添付による送信(mail)\n      user\n          ユーザー定義(fn_ex_upload)\n    \n      * 括弧内は利用するコマンド\n\n## レポート\n\nバックアップ結果を報告する事が出来ます\n\n方法は以下の種類、他、ユーザー定義も指定できます\n\n事前にセキュリティ設定やコマンド導入が必要になります\n\n通常バックアップ動作モードのみ動作します\n\n–test-report にて動作テストが行えます\n\n      chat\n          現在ログイン中のユーザーに報告(wall)\n      log\n          syslogに記録(logger)\n      mail\n          メールによる送信\n      http\n          HTTPアクセス(apiなどに)(curl)\n      user\n          ユーザー定義(fn_ex_report)(curl)\n\n## 運用前・改造・ユーザー定義関数他\n\n複雑なコードは御座いませんので、ご自由に改変ください\n\n十分なデバッグを行っておりますが、複数の環境想定、全パターンでの確認は実施しておりません\n\nバグは含んでいるものとして、お考えください\n\n本運用に入る前に、十分なテストを行ってください\n\n_DEBUG に true を設定する事で、その場で動作を停止する事ができます\n\nエラー内容や場所、グローバル変数値が表示されます\n\nテスト完了後には、_DEBUG に、false を設定してください\n\nテスト時のパスワード情報の削除なども忘れず（history -c など）\n\nユーザー定義関数は以下になります\n\n独自の処理を導入されたい場合に、記述ください\n\n    - バックアップファイル生成\n        fn_ex_build_balls\n    - アップロード\n        fn_ex_upload\n    - リポート\n        fn_ex_report\n    - 終了時(通常バックアップモード時)\n        fn_ex_exit\n\nライセンスは、広く利用されている MITライセンス となります\n\n商用、改変なども自由に利用頂けます\n\n配布の際、著作権表記が必要になります\n\n一見、プログラミング言語の様に見えるのは罠ですのでご注意ください\n\nシェル上で動作しているイメージを忘れずコーディングください\n\nもともとサーバのバックアップ用にと、数行のスクリプトでしたが、こつこつと機能を加え続け、現在のような形になって行き公開するに当たって、ドキュメント含め、全体的な見直しを幾度も行い、より肥大化してしまいました\n\nシェルに不慣れな方のために、コメントも多めに追加致しました\n\n当初は、SSH上(Ubuntu24.04LTS実機)+Vimで、後半はWSL2(同24.04)+VSCodeで書きました\n\nBashやシェルコードの記事を公開して頂いている多くの先人様に感謝申し上げます\n\n## arguments / 引数\n\n    通常バックアップ\n    (規定場所のバックアップ)\n    例) ./MyBackup.sh\n    バックアップ、進捗表示、偽ファイル生成\n    例) ./MyBackup.sh -v -f\n    暗号化生成までで終わり、進捗表示\n    例) ./MyBackup.sh -v -e\n\n    mode:簡単解凍\n    例) ./MyBackup.sh backup_20250401.tar.gzc\n    mode:クイックバックアップ\n    例) ./MyBackup.sh ./work\n\n### options:\n    -b|–ball\n        build tar/zip only\n        Tar/Zip生成のみで終了します\n    -e|–encrypt\n      exit after encrypted\n        暗号化生成までで終了します\n    -g|–organize\n        do not remove older-backups\n        古いバックアップ削除を行いません\n    -h|man|–help|info|usage|ver\n        this document\n        ドキュメントを表示します\n    -v|–verbose\n        reporting\n        処理情報を表示します\n        *通常モード外では強制ONとなる場合有り\n    -f|–fake\n        added fake-file\n        偽バックアップファイルを追加生成\n\n### quick-modes:\n*自動で、-vが付与されます\n\n    [filename] [filename] …\n        mode:簡単解凍、カレントの\"_ez_decode\"ディレクトリ内に解凍\n        他のオプションは機能しません\n        (Tar/Gzip関連デフォルト値限定)\n    \n    [directory] [directory] …\n        mode:簡単クイックバックアップ\n        設定値で、対象をバックアップし保存します\n        他のオプションは機能しません\n\n### test-modes:\n*自動で、-vが付与されます\n\n    –test-file\n        mode:動作テスト用のファイルを生成します\n    –remove-test-file\n        mode:動作テスト用のファイルを削除します\n    –test-mount\n        mode:マウントの動作テストを行います\n    –test-available\n        mode:ディスクチェックの動作テストを行います\n    –test-upload\n        mode:アップロードの動作テストを行います\n        ダミーファイルが用いられます\n    –test-report\n        mode:レポートの動作テストを行います\n\n### ???-modes:\n    no|none|pass|null|nurupo|hoge*|fuga*\n        mode:何もしません\n    color|colors|ansi\n        mode:設定用カラーサンプル表示\n    –fuck|*fuck*\n        mode:気分転換にご利用ください\n    –poop|*poop*|*shit*|*ass*|*unko*|*kuso*\n        mode:１つだけ何か混じってます\n    sl|ls\n        mode:special animation. *require “sl\"\n\nZz. (¦3[▓▓]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnabeky%2Fmybackup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnabeky%2Fmybackup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnabeky%2Fmybackup/lists"}