cronjobの実行時にファイルを生成する必要があります。

cronjobの実行時にファイルを生成する必要があります。

cronjobの実行時に別のファイル名を生成するbashスクリプトが必要です。ファイル名はfile1、、file2と同じでなければなりませんfile3。たとえば、Cronが11月1日に実行されたら作成し、file111月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使用してゼロで埋められた日付を取得することをお勧めします。ファイル名を一覧表示するときにシェルでファイル名を見やすくしたい場合でも、これはより良い選択です。0802

printf -v filename 'file%(%d)T' -1

bashmacOSなどの以前の実装を含むシステムでは(Homebrewを介して最新バージョンがインストールされていない場合)、外部コマンドをbash呼び出す必要があります。date

printf -v filename 'file%s' "$(date +%d)"

関連情報