私の仕事では、通常、次の構文を使用してLinuxサーバー上でスクリプトを実行します。
./<whatever absolute path to script>/<script>
明らかに、これは正しいユーザーと正しい権限で実行されると、通常スクリプトを実行します。
これで、最近サーバーにどのような変更が加えられたかはまったくわかりません。 SA はしばしば通知をまったく提供せず、アップグレード、パッチ、修正を管理します。問題は、最近同じ構文を使用してスクリプトを実行しようとすると、「スクリプトが見つかりません」のために実行が失敗することです。
回避策は、次の有効な構文を使用することです。
bash /<whatever absolute path to script>/<script>
私はSAまたはUnixサーバー構成の専門家ではありません。これらの問題が発生する理由と解決策を知っている人はいますか?
よろしくお願いします。
答え1
例で絶対パスを述べたように、次のコマンドを使用する必要があります。
/<whatever absolute path to script>/<script>
oa 点は相対パス検索を意味するためです (点は現在のディレクトリです)。使用ポイントは、現在のディレクトリが/
(ルート)の場合にのみ有効です。
また、権限と実行フラグを確認してください。 Sorスクリプトでは読み取り権限も設定する必要があります。
答え2
ls -l
スクリプトがあるディレクトリからスクリプトを実行して、スクリプトが「実行可能」であることを確認できます。出力の最初の列には、所有者、グループ、または他の人の「linux権限」が表示されます。
実行可能ビットがセットされたことを示す「x」が表示される。
-rwxr-xr-x
この例には 3 つがあるため、ファイル所有者、所有グループの全員、他のユーザーがファイルを実行できます。許可ビットの次のブログエントリが見つかりました。https://www.linuxfoundation.org/blog/blog/classic-sysadmin-understanding-linux-file-permissions。
答え3
- スクリプトが実行可能であることを確認してください。
chmod +x <name of the script>
PATH
どこでも実行するには、その場所に配置してください。パスを見つけるには、次の手順を実行します。echo $PATH