/etc/cron/(d) の基本的な使用法: /etc/cron の正しいモード (日/週/月)

/etc/cron/(d) の基本的な使用法: /etc/cron の正しいモード (日/週/月)

私はBashでUbuntu 16.04を使用して拡張子がなく、shebanglessファイルを作成しました/etc/cron.daily/cron_daily

for dir in "$drt"/*/; do
if pushd "$dir"; then
wp plugin update --all --allow-root
wp core update --allow-root
wp language core update --allow-root
wp theme update --all --allow-root
popd
fi
done
"$rse"

私がそうする理由は、混乱を減らすためですcrontab

ファイル名が安全であるか、完全な構文と変数拡張が正常であるかを見てみたいです。


およびdrt変数は、rseそのファイルをインポートして使用できるようになった後にエクスポートされます。

ベストアンサー1

私がアクセスできるUbuntuシステムの同じ場所にある別のスクリプトを見ると、これが適切なシェルスクリプトであることは明らかです。実行可能でなければならず、#!正しいインタプリタを指す - 行が必要です。

あなたが〜した後予想される変数がdrtどの値に設定されている場合は、実際に設定されていることを確認し、合理的な値に設定する必要があります。たとえば、ifは$drt既存のディレクトリのパス名でなければなりません。

if [ ! -d "$drt" ]; then
    echo 'drt is unset or does not contain path to directory' >&2
    exit 1
fi

同じrse:

if [ -z "$rse" ]; then
    echo 'rse is unset' >&2
    exit 1
fi

これはスクリプトの先頭で行われます。

ディレクトリの確認

pushdpopdに対話型使用のためのものです(議論の余地があるかもしれません)。また、ディレクトリを前後に変更するスクリプトを読み、維持することも困難です。このスクリプトにはないかもしれませんが、通常はそうです。

作業ディレクトリを変更し、何かをして再度変更する代わりに、次のコマンドを使用できます。

( cd "some directory" && "some other command" )

上記はサブシェルcdにのみ影響します( ... )

このスクリプトで十分です。

if cd "$dir"; then
    command1
    command2
    # etc.
fi

これが$drt絶対パスであり、単純なコマンドが開始位置に関係なく正しく実行されると仮定します(これは - ステートメントの後の変更された作業ディレクトリ$rseにスクリプトを残します)。if他のスクリプトがどのように/etc/cron.daily/機能するかを確認してください(上記の提案は/etc/cron.daily/dpkgスクリプトが機能する方法ですが、ステートメントの後に他のコマンドはありませんif)。

for-loopと-statementの本文を適切にインデントすると、スクリプトに利点がありますif

元のサンプルコードを使用すると、次のことができます。

#!/bin/bash
for dir in "$drt"/*/; do
    if pushd "$dir"; then
        wp plugin update --all --allow-root
        wp core update --allow-root
        wp language core update --allow-root
        wp theme update --all --allow-root
        popd
    fi
done
"$rse"

インデントはスペースまたはタブを使用して実行できます(好みによって異なります)。

また、この投稿の作成中に変数名を何度も誤って入力しました。説明的な変数名を持つことは、あなた自身(数週間後)とスクリプトが何をすべきかを知りたい人に役立ちます。スクリプトで短い変数名を使用すると、パスワードコードが発生する可能性があるため、利点はありません。また、これらの変数が他の場所に設定されているという事実も不便です。これは、スクリプトで知られておらず、文書化されていないものに依存するという意味だからです。

おすすめ記事