質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

1回答

1001閲覧

古いバックアップファイルを自動削除

happy_tera

総合スコア159

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

0クリップ

投稿2018/01/28 04:27

編集2018/01/28 05:41

以下のスクリプトを毎日実行しているのですが、バックアップはできますが自動削除がされません。
どこがおかしいのでしょうか?

#!/bin/sh # 他のユーザからバックアップを読み込めないようにする umask 077 # バックアップファイルを何日分残しておくか(一ヶ月分) period=5 # バックアップファイルを保存するディレクトリ dirpath='/root/backup/mysql' # ファイル名を定義(※ファイル名で日付がわかるようにしておきます) filename=`date +%Y%m%d` # mysqldump実行(ファイルサイズ圧縮の為gzで圧縮しておきます。) mysqldump --opt --all-databases --events --default-character-set=binary -u root --password= | gzip > $dirpath/$filename.sql.gz # 古いバックアップファイルを削除 oldfile=`date --date "$period days ago" +%Y%m%d` rm -f $dirpath/$oldfile.sql.gz

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

削除するコードが入っていないので、削除されません。
rm $oldfile
を最後に追加してください。

あと、コードはコードブロックにしてください。
コード部分を全部選択して、入力欄の上にある「</>」ボタンを押して、「ここに言語を入力」のところを「Bash」に書き直してください。

投稿2018/01/28 04:57

otn

総合スコア84538

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

happy_tera

2018/01/28 05:44

回答ありがとうございます。 コードブロックにしました。ご指摘ありがとうございます。 最後の一文のrmコマンドに関しては抜けておりまして rm -f $dirpath/$oldfile.sql.gz と記述しているにも関わらず削除されるときとされない時があります。
otn

2018/01/28 05:52

削除されないときは、何かエラーメッセージは出ていませんか? あ、-f が付いていますね。-f は外しておいてください。ファイルが無くてもエラーメッセージが出ないので付けちゃ駄目です。 日をまたがる処理になって、日が時にはずれるという事じゃ無いでしょうね?
happy_tera

2018/01/28 05:57

回答ありがとうございます。 -fを外してエラーメッセージを見てみたいと思います。 毎朝4時にcronで起動しています。
otn

2018/01/28 11:44

ls -l $dirpath を要所要所に入れておいた方が良いですね。dumpの前後と、rmの前後。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問