フォルダのファイル名を変更するタスクをスケジュールし、更新された警告メールを送信します。

フォルダのファイル名を変更するタスクをスケジュールし、更新された警告メールを送信します。

フォルダ内のすべてのファイル名を変更するシェルスクリプトを作成しています。

30秒ごとに特定のパターンのファイルを検索する必要があります。

次の形式のファイルを選択する必要があります。

    core.3467
    core.1234
    core.acde

次のように更新する必要があります。

    c.o.r.e.3467
    c.o.r.e.1234
    c.o.r.e.acde

更新されたら、core.3467ファイルがcore3467に変更されたことを知らせる警告メールを送信する必要があります。

これまでに書いたものですが、 rename コマンドが機能していないようです。

#!/bin/bash
#go the designated directory
cd "<dir_name>"
mail="[email protected]"
#writing all the files in the specified format
ls core* > current.txt
a='cat current.txt'

#renaming the file
rename "s/core/c.o.r.e."*

#writing updated file names
ls c.o.r.e* > updated.txt
b='cat updated.txt'

#sending alert email
mail -s "Files $a changed to $b" $mail

ベストアンサー1

#!/bin/bash

[email protected]

for file in $(ls /my/directory/name/core*)
do
  newname=$(echo ${file}|sed -e "1,1s/core/c.o.r.e/")
  mv ${file} ${newname}
  echo "File Renamed..."|mail -s "File ${file} renamed to ${newname} ${email_address}
done

これをする必要があります...

おすすめ記事