1

次の行を使用して、bash スクリプトでイベントをログに記録しようとしています。

#!/bin/bash
{
...
echo "Photo backup successfully finished on $(date)" | wall
...
} &>> "/var/log/$(basename "$0").log" &

ただし、ログ ファイルでは、対応する行が代わりに次のように表示されます。

wall: cannot get tty name: Inappropriate ioctl for device

壁の出力をファイルに送信できないようです。

どうすればこれを機能させることができますか? (ウォールに投稿し、メッセージをファイルに記録することができます)

4

2 に答える 2

0

あなたがソマンドを実行している以外のユーザー/グループが現在の端末を所有しているからだと思われます。以下の例は Fedora 21 でテストされています。

「w」のように使用されたTTYを確認してください

$ w
 09:20:21 up 10:34,  2 users,  load average: 0.22, 0.27, 0.35
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
alex     pts/0     08:38   41:17   0.27s 13.46s /usr/bin/xfce4-terminal
alex     pts/1     08:39    5.00s  0.81s 13.46s /usr/bin/xfce4-terminal

その後

$ ls -l /dev/pts/*
total 0
crw--w----. 1 alex tty  136, 0 Mar 13 09:18 0
crw--w----. 1 alex tty  136, 1 Mar 13 09:22 1

次に、ウォールにメッセージを送信する必要があるユーザーをグループ「tty」に追加するだけです

mcedit /etc/group
...
tty:alex,nut
...
于 2015-03-13T07:25:15.543 に答える