質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

761閲覧

cronの実行確認用シェルスクリプト

asagaya

総合スコア42

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2021/04/17 09:31

編集2021/04/17 10:27

月曜から金曜の間、sambaの共有ディレクトリ/ho/shareの中身をtarでアーカイブにして/tmpに保存して、さらに/tmpを192.168.1.50のwindowsserver2012のc:\samba-backupというフォルダにscpで送ろうと思い以下のようにシェルスクリプトを書きました。

bkfilename="bk-$(date '+%Y%m%d').tar a=’date +%w’ if [ "$a" == "1" -o "$a" == "2" -o "$a" == "3" -o "$a" == "4" -o "$a" == "5" ] then; tar -cvf /tmp/"$bkfilename" /home/share expect -c " set timeout 5 spawn scp -r /tmp administrator@192.168.1.50:"c:\\samba-backup" expect \"password:\" send \"パスワード\n\" expect eof exit " fi

このシェルスクリプトをcrontabにセットして平日の夜11時59分に1回実行されるようにしました。
そこで質問ですが、cronが実行されてwindowsserver2012のc:\samba-backupフォルダに/tmpが正しく送られた事を確認するためのシェルスクリプトを書くにはどのようなコマンドを使えばよいでしょうか。(前日に正しく送られていれば〇、送られていなければ×などと表示されるような感じです)よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2021/04/17 09:51 編集

質問とは直接関係ないですが、cronで実行する前にまず手動で実行して正しく動くことを確認します。 これでは駄目ですね。構文エラー。
otn

2021/04/17 09:50

> 確認するためのシェルスクリプト は、手動で翌日実行するのでしょうか?
asagaya

2021/04/17 10:21 編集

以前頂いたアドバイスを受けて直しました。 c:\samba-backup の部分を c:\\\samba-backup に変えました。 手動で実行すると上手くいきます。c:\samba-backupフォルダに/tmpが確かに送られています。 それともa=date +%wをバッククォーテーションで囲んでいない所でしょうか。(そこは打ち間違いです) チェック用のシェルスクリプトは翌日に手動で実行します。
otn

2021/04/17 10:21

手動で実行するとうまく行っているなら、実行しているコードを載せましょう。 質問文のコードはぐちゃぐちゃです。
otn

2021/04/17 10:23

> チェック用のシェルスクリプトは翌日に手動で実行します。 Windows側で実行するのでなく、Linux側で実行してWindowsのフォルダーを覗くということですか?
asagaya

2021/04/17 10:26

そうです。linux側で実行します。
guest

回答1

0

ベストアンサー

昨日日付のファイルがあるかを確認するとして、

Bash

1if expect -c " 2set timeout 5 3spawn ssh dministrator@192.168.1.50 dir c:\samba-backup 4expect \"password:\" 5send \"パスワード\n\" 6expect eof 7exit 8" | grep "$(date +%Y/%m/%d -d -1day)" 9then echo O 10else echo X 11fi

投稿2021/04/17 10:47

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asagaya

2021/04/17 11:04

詳しく教えていただきとても助かりました。ありがとうございます。
otn

2021/04/17 11:06

今後は、質問には実行したコードを載せてください。
asagaya

2021/04/17 11:42

はい。ご迷惑をおかけしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問