cronjobの実行時に別のファイル名を生成するbashスクリプトが必要です。ファイル名はfile1
、、file2
と同じでなければなりませんfile3
。たとえば、Cronが11月1日に実行されたら作成し、file1
11月2日に作成する必要がありますfile2
。
ベストアンサー1
cronジョブでスクリプトを実行するという事実は不適切です。スクリプトは現在の日付を含む値を生成し、それをファイル名として使用するだけです。
その月の日付を取得するのは初めて聞くほど簡単ではありません。 Linux(バージョン4.2+)では、bash
次のように実行できます。
printf -v filename 'file%(%-e)T' -1
...%(...)T
時間形式文字列を使用してタイムスタンプをフォーマットする方法はどこにありprintf
、%e
日付は整数です。通常、%e
日付が1桁の日付の場合は、最初の空白文字が含まれますが、%-e
空白が消えるように数値を左揃えに使用します。
ただし、これは(一部の)Linux以外のシステムでは機能せず、代わりにfilenameを取得しますfile-e
。したがって、これらのシステムでは、たとえば、またはを%d
使用してゼロで埋められた日付を取得することをお勧めします。ファイル名を一覧表示するときにシェルでファイル名を見やすくしたい場合でも、これはより良い選択です。08
02
printf -v filename 'file%(%d)T' -1
bash
macOSなどの以前の実装を含むシステムでは(Homebrewを介して最新バージョンがインストールされていない場合)、外部コマンドをbash
呼び出す必要があります。date
printf -v filename 'file%s' "$(date +%d)"