私はいくつかの繰り返しタスクを実行していますが、1つのコマンド(run bash script)ですべてのタスクを実行できる小さなbashスクリプトを作成することをお勧めします。私が実行する必要があるタスクは次のとおりです。
# stop HTTPD, clear logs, start HTTPD back
service httpd stop
cd /var/log/httpd/
rm -r *
service httpd start
# clear PHP error logs
truncate /var/log/php/php_errors.log --size 0
# clear MySQL error, query and slow logs
truncate /var/log/mysql/mysql_error.log --size 0
truncate /var/log/mysql/mysql_query.log --size 0
truncate /var/log/mysql/mysql_slow.log --size 0
これが私がすることです:
#! /bin/bash
# stop HTTPD, clear logs, start HTTPD back
service httpd stop
cd /var/log/httpd/
rm -r *
service httpd start
# clear PHP error logs
truncate /var/log/php/php_errors.log --size 0
# clear MySQL error, query and slow logs
truncate /var/log/mysql/mysql_error.log --size 0
truncate /var/log/mysql/mysql_query.log --size 0
truncate /var/log/mysql/mysql_slow.log --size 0
ところで、このエラーが引き続き発生し、私が何が間違っているのかわかりません。
bash: ./cleanup.sh: /bin/bash^M: 無効なソルバー: ファイルまたはディレクトリが存在しません。
私は何が間違っていたか逃したのですか?
ベストアンサー1
あなたは走らなければなりませんdos2unix
ファイル内のファイルは、Windowsファイルの終わりを使用してLinuxディストリビューションにコピーできます。とも呼ば^M
れる入力するLinuxディストリビューションbash^M
に代わりにfindコマンドが必要だと思うようにするには、文字を使用してくださいbash
。
実際に文字を表示するには、^M
次のようにファイルを開くことができますcat -A
。
$ cat -A file
# --- comment: expected output below ---
#! /bin/bash^M
# stop HTTPD, clear logs, start HTTPD back^M
service httpd stop^M
cd /var/log/httpd/^M
まだインストールしていない場合は、コマンドの置き換えをdos2unix
試すこともできます(説明されているように)。tr
ここ):
tr -d '\r' < inputfile > outputfile