これは私のGithubアカウントに保存したcrontabスキーマです。
source ~/.profile
0 0 * * *
# More cron commands
練習でstdoutデータをcurl
crontabにリンクしてみました(Githubパスを汎用モードに変更しました)。
1)簡単なパイプを使用しようとしています。
curl https://raw.githubusercontent.com/user/repo/master/cronjobs | crontab
次のエラーが原因でこの操作は失敗します。
"-":0: 悪い方
crontabファイルが正しくないため、インストールできません。
2)区切り記号を使ってみました。
curl https://raw.githubusercontent.com/user/repo/master/cronjobs | cat > crontab
次のエラーが原因でこの操作は失敗します。
修正はありません。
三)curl
出力をcrontab
。
echo "curl $(https://raw.githubusercontent.com/user/repo/master/cronjobs)" | crontab
次のエラーが原因でこの操作は失敗します。
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0...: command not found
100 505 100 505 0 0 804 0 --:--:-- --:--:-- --:--:-- 804
(23) Failed writing body
stdoutからcrontabにデータを送信する3つの異なる方法を試しましたが、何も機能していないことがわかります。ファイルの代わりにcrontabに直接渡すにはcron.d
どうすればよいですか?
ベストアンサー1
"-":0: bad minute
errors in crontab file, can't install.
crontab
このエラーは、提供されたファイル/データが正しいcrontabファイルでない場合に発生します。 (そこにある数字に行番号があるようですが、なぜ時々ゼロが出るのかわかりません。)マニュアルページcrontab(5)
説明する:
crontabのアクティブな行は、環境設定またはcronコマンドです。環境設定は次のとおりです。
name = value
等号(=)の周囲のスペースはオプションです。cron コマンドの形式は V7 標準に似ており、多くのアップコンパチブル拡張があります。各行には5つの時間と日付フィールドがあり、その後にユーザー名(システムcrontabファイルの場合)、コマンドが続きます。
したがって、入力した内容は次のいずれかではない可能性があります。
いいね:
$ crontab <<EOF
SHELL=/bin/bash
* * * * * echo foo
EOF
これはない:
$ echo "foo" |crontab
"-":1: bad minute
errors in crontab file, can't install.
2)これはhere-docではなく、追加のcatを含むパイプとファイルへのリダイレクトですcrontab
。名前付きコマンドは実行されませんcrontab
。
curl https://raw.githubusercontent.com/user/repo/master/cronjobs | cat > crontab
3) これにより、シェルでエラーが発生します。おそらくというコマンドはありませんhttps://raw.githubusercontent.com/user/repo/master/cronjobs
。
echo "curl $(https://raw.githubusercontent.com/user/repo/master/cronjobs)" | crontab