hpanel の Bash cron ジョブがディレクトリを見つけません

okwaves2024-01-25  7

cron ジョブに次のコードがあります。実行されますが、コードは本来の動作をしません。ディレクトリは作成されず、コード内では何も行われません。ディレクトリの指定方法が間違っていないか確認してください。

#!/bin/bash 
NAMEDATE=`date +%F_%H-%M`_`whoami`
NAMEDATE2=`date ` 
mkdir ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE -m 0755 
mysqldump -u u3811*****_boss -p"*******" u3811*****_data | gzip ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/db.sql.gz
echo "This is the database backup for website.com on $NAMEDATE2" |
mailx -a ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/db.sql.gz -s "website.com Database attached" -- [email protected] 
chmod -R 0644 ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/*
exit 0


------------------------

次に示すように、NAMEDATE 変数を少し変更する必要があります。bash の変数の詳細については、このリンクを参照してください。

NAMEDATE=$(date +%F_%H-%M"_"$(whoami))

mkdir コマンドを発行するとき、完全なディレクトリ構造が存在しない場合は、-p オプションを渡して完全なディレクトリ構造を作成する必要があります。

mkdir -p ~/home/u3811numbers/domains/website.com/public_html/cron/backup/files/$NAMEDATE -m 0755

また、Linux ベースのディストリビューションの ~ 文字は、これを呼び出すユーザーのホーム ディレクトリへのショートカットとして使用されるため、その下の行の結果は /home//home/u3811*****/domains/website.com/public_html/cron/backup/files になります。 /2020-09-04_23-13_ ここで詳細を読むことができます

終了前の最後のコマンドでは、ディレクトリ上の実行可能ビットの削除を避けるために、ワイルドカード (*) を渡す必要がある場合があります。以下を参照してください。

chmod -R 0644 ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/

スクリプトの最終バージョンは次のようになります。

#!/bin/bash

NAMEDATE=$(date +%F_%H-%M"_"$(whoami))

NAMEDATE2=date

mkdir -p ~/home/u3811******/domains/website.com/public_html/cron/backup/files/$NAMEDATE -m 0755

mysqldump -u u3811*****_boss -p"******" u3811*****_data | gzip > ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/db.sql.gz

echo "This is the database backup for website.com on $NAMEDATE2" | mailx -a ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/db.sql.gz -s "website.com Database attached" -- [email protected]

chmod -R 0644 ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/*

bash スクリプトをデバッグするには、いつでも -x フラグを渡すことができます。詳細については、この記事をご覧ください。

2020 年 9 月 5 日 3:59 に回答

エロチェン

エオロチェナ

196

12 個

銅バッジ 12 個

4

お時間をいただきありがとうございます。エオロチェナですが、問題は解決しません。上に投稿したコードは cpanel では正常に動作しますが、ディレクトリ形式 mkdir -p ~/public_html/cron/backup/files/$NAMEDATE -m 0755 ではなぜ同じことが hpanel で動作しないのかわかりません。それが私が使用してみることにした理由です。ファイルの完全なディレクトリ

– フォン・シュウ

2020 年 9 月 5 日 13:18

@fengxu これはあなたがやろうとしていることですか? hostinger.com/tutorials/…

– エオロチェナ

2020 年 9 月 6 日 21:15

私は他の php cron ジョブを持っていますが、それらは非常にうまく機能しており、ホスティングガーで cron ジョブを設定する方法は知っています。私の問題は、上記の bash スクリプトは機能し、cron ジョブは実行されますが、スクリプトが本来の動作をしないことです。

– fエンシュウ

2020 年 9 月 6 日 21:29

SSH アクセス機能を使用して、スクリプト内の個々のステートメントを実行してみましたか?

– エオロチェナ

2020 年 9 月 6 日 21:56

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。