Hack BBS

[全部のスレッド一覧][新規投稿][記事の削除・変更] [Home Page]

返信投稿はタイトルのリンクをクリックして下さい
スレッド【No.3032】の中の記事をすべて表示しています

【No.3032】のスレッド
05/09/20(火) 13:26:02 投稿者[Haya] [No.3032]のスレッド内
【No.3032】 タイトル[cron処理でのトラブル] この記事がスレッドの最初です
【No.2940】でお世話になったHayaです。
また壁にぶち当たりました・・・。

Win機のバックアップサーバーとして玄箱をセットアップしているのですが、うまく行きません。

処理は下記の様な流れです。

Script1
バックアップするWin機の存在チェック(Pingが通ればバックアップするListに入れる)

Script2
while read line; do
/home/sh/bksub2.sh ${line}  #バックアップするScriptにPC名を渡して実行
done < /home/sh/bklist0  #←Script1で作ったList

Script3
while read line; do
for drive in c d ; do  #CドライブとDドライブをバックアップする。
mount -t smbfs -o username=***,password=***,\codepage=cp932,iocharset=euc-jp //${line}/${drive}$ /mnt/nfs1
  #接続に失敗した場合、次のdriveを実行
s5=`df | grep /mnt/nfs1`
if [ ! -n "$s5" ]; then
break
fi
  #バックアップ
rsync -az -e ssh --exclude-from=/home/sh/zyogai /mnt/nfs1/ /home/backup/${line}/${drive}
umount /mnt/nfs1
done
done < /home/sh/$1


基本的にバックアップしていますが、台数が多くなると途中で処理が終了してしまいます。
色々試した結果、問題はmountの際DドライブがないPCがあり、接続エラーが発生し、それが何回か発生すると、処理がストップするようです。
(Cronで実行した場合のみストップします。./Script2で実行すると問題ありません。)

mountコマンドの前に//PC名/d$に接続可能か確認出来る方法はないのでしょうか?
または、Cronで実行する際、エラーが出ても処理が続く設定方法を教えてください。
(出来ればどちらも知りたいです。。)

説明が解りにくいですが、、、よろしくお願いします。

05/09/24(土) 18:53:04 投稿者[あっくん] [No.3032]のスレッド内
【No.3038】 タイトル[Re: cron処理でのトラブル] 【No.3032】に対する返信
>mountコマンドの前に//PC名/d$に接続可能か確認出来る方法はないのでしょうか?

d$共有を作るか
smbclient //pcname/d$ -N | grep NT_STATUS_BAD_NETWORK_NAME

をwcすればいいのでは...

パス直書きできるのであれば
smbclient -L pcname -Uuser%pass をgrepしてもいいかも?

#玄箱買ってきてlinux久しぶりに触る・・・

05/09/26(月) 10:07:46 投稿者[Haya] [No.3032]のスレッド内
【No.3039】 タイトル[Re: cron処理でのトラブル] 【No.3038】に対する返信
回答ありがとうございます。

>smbclient //pcname/d$ -N | grep NT_STATUS_BAD_NETWORK_NAME
>
>smbclient -L pcname -Uuser%pass をgrepしてもいいかも?

どちらも試してみましたが、
Domain=[pcname] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
が出るみたいです。
結果、処理は途中で終わってしまいました。

05/09/26(月) 13:04:44 投稿者[あっくん] [No.3032]のスレッド内
【No.3040】 タイトル[Re: cron処理でのトラブル] 【No.3039】に対する返信
では d$共有を空で作っておくと良いのではないでしょうか

smbclient -L pcname -U(ユーザ名)%(パス)

そのままだとどう返ってきますか?

これで共有名とか抽出できるのでもうすこしフレキシブルに
かけると思います。

05/09/26(月) 15:12:07 投稿者[Haya] [No.3032]のスレッド内
【No.3041】 タイトル[Re: cron処理でのトラブル] 【No.3040】に対する返信
お手数かけます。

>では d$共有を空で作っておくと良いのではないでしょうか
そこそこの台数がありますので、玄箱側で解決したいです。

>smbclient -L pcname -U(ユーザ名)%(パス)
>
>そのままだとどう返ってきますか?

こんな感じです。

Domain=[pcname] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager] #←

Sharename Type Comment
--------- ---- -------
aaaaaaa Disk
My Documents Disk
IPC$ IPC Remote IPC
bbbbbbb Disk
ADMIN$ Disk Remote Admin
C$ Disk Default share
Domain=[pcname] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager] #←

Server Comment
--------- -------

Workgroup Master
--------- -------

”#←”このメッセージが恐らく原因だと思います。

smbclient -L pcname -U username%pass > aaa
で、cat aaaを行うと、”#←”この行はありません。

sambaが出す(Linuxが出す??)メッセージを止めることが出来れば解決するような気がします。

よろしくお願い致します。

05/09/27(火) 22:56:57 投稿者[あっくん] [No.3032]のスレッド内
【No.3042】 タイトル[Re: cron処理でのトラブル] 【No.3041】に対する返信
シェル書き直してみました。
うちではsmbfsマウントできなかったのでその部分は確認してません

#!/bin/bash
pclist=(pc1 pc2 pc3)
user=hoehoe
pass=gemagema

for line in ${pclist[*]}
do
for drive in c d
do
if [ `smbclient -L ${line} -U${user}%${pass} | grep -i "[[:blank:]]${drive}\\\$[[:blank:]]" | wc -l ` -gt 0 ]
then
mount -t smbfs -o username=${user},password=${pass},codepage=cp932,iocharset=euc-jp //${line}/${drive}$ /mnt/nfs1
rsync -az -e ssh --exclude-from=/home/sh/zyogai /mnt/nfs1/ /home/backup/${line}/${drive}
sync;sleep 10
umount /mnt/nfs1
fi
done
done




05/09/28(水) 12:59:09 投稿者[Haya] [No.3032]のスレッド内
【No.3046】 タイトル[Re: cron処理でのトラブル] 【No.3042】に対する返信
何度もありがとうございます。

ログを取って確認したのですが、30回目の”if [ `smbclient -L ${line} -U$・・・”を処理していないみたいです。


cronの仕様なんですかね。。。

05/09/28(水) 11:42:28 投稿者[Haya] [No.3032]のスレッド内
【No.3043】 タイトル[Re: cron処理でのトラブル] 【No.3042】に対する返信
何度もありがとうございます。

ログを取って確認したのですが、30回目の”if [ `smbclient -L ${line} -U$・・・”を処理していないみたいです。


cronの仕様なんですかね。。。

05/09/28(水) 12:50:23 投稿者[あっくん] [No.3032]のスレッド内
【No.3045】 タイトル[Re: cron処理でのトラブル] 【No.3043】に対する返信
同時起動してるんじゃないですかね?

05/09/28(水) 13:39:51 投稿者[Haya] [No.3032]のスレッド内
【No.3047】 タイトル[Re: cron処理でのトラブル] 【No.3045】に対する返信
>同時起動してるんじゃないですかね?

crontabには1行しか入れていませんし、その間触ってないので、シェルの同時起動はしていないと思います。

訂正
>ログを取って確認したのですが、30回目の”if ・・・
30回目じゃなく、30回目以降でした。

05/09/29(木) 00:01:23 投稿者[あっくん] [No.3032]のスレッド内
【No.3048】 タイトル[Re: cron処理でのトラブル] 【No.3047】に対する返信
>crontabには1行しか入れていませんし、その間触ってないので、シェルの同時

こんな感じですか?

0 8,20 * * * /shell/winbackup.sh > /dev/null 2>&1


05/09/29(木) 14:57:52 投稿者[Haya] [No.3032]のスレッド内
【No.3051】 タイトル[Re: cron処理でのトラブル] 【No.3048】に対する返信
>>crontabには1行しか入れていませんし、その間触ってないので、シェルの同時
>
>こんな感じですか?
>
>0 8,20 * * * /shell/winbackup.sh > /dev/null 2>&1

これです。
12 13 * * * root /home/test/test2.sh

05/09/29(木) 16:16:20 投稿者[あっくん] [No.3032]のスレッド内
【No.3052】 タイトル[Re: cron処理でのトラブル] 【No.3051】に対する返信
そままだとmountとかメッセージ吐いてるので
ログに出力してみましょう

12 13 * * * root /home/test/test2.sh > /home/test/test2.log 2>&1

最終的には nullに捨てるといいと思います。

cron のログも確認してみるといいと思います
/var/log/cron です。





05/09/30(金) 10:34:53 投稿者[Haya] [No.3032]のスレッド内
【No.3055】 タイトル[解決しました] 【No.3052】に対する返信
お世話になります。

>そままだとmountとかメッセージ吐いてるので
>ログに出力してみましょう
>
>12 13 * * * root /home/test/test2.sh > /home/test/test2.log 2>&1
>
>最終的には nullに捨てるといいと思います。
>
>cron のログも確認してみるといいと思います
>/var/log/cron です。
>

最後まで完走しました!
”> /dev/null 2>&1”
これの意味がやっと理解(全てではありませんが。。)できました。(@ITでみたような気がします)

ありがとうございました。