この場合、一致(updateKey.sh)を見つける前に行にテキストを追加しようとしましたが、機能しませんでした。これは私のcrontabファイルで、スクリプトはここに行を追加します。
0 06,18 * * * /home/server/scripts/CCgenerator.sh
0 05 * * * /home/server/scripts/updateKey.sh
最初の行「CCgenerator.sh」は時々削除されますが、そう見えます。以下はその行を追加するスクリプトです。
#!/bin/bash
CCgenerator="0 06,18 * * * /home/server/scripts/CCgenerator.sh"
updateKey="0 05 * * * /home/server/scripts/updateKey.sh"
if ! sudo grep -q "$CCgenerator" /var/spool/cron/crontabs/root; then
echo "Adds CCgenerator.sh"
sudo sed -i '/\$updateKey/i $CCgenerator' /var/spool/cron/crontabs/root
else
echo "CCgenerator.sh found"
fi
exit
ベストアンサー1
cronの編集目的のために、l0b0の答えは次のスクリプトを修正するための最良の方法です。
- 検索キーのエスケープ点とアスタリスク(
updateKey
) - 代替区切り記号を使用する
sed
(マイ選択%
) - sed式の周りの二重引用符(解析したいbash変数)
#!/bin/bash
CCgenerator="0 06,18 * * * /home/server/scripts/CCgenerator.sh"
updateKey="0 05 \* \* \* /home/server/scripts/updateKey\.sh"
if ! grep -q "$CCgenerator" cron; then
echo "Adds CCgenerator.sh"
sed -i "\%$updateKey%i $CCgenerator" cron
else
echo "CCgenerator.sh found"
fi
exit