udevルールから呼び出された次のスクリプトを使用してバックアップを自動化します。
#!/bin/bash
export DISPLAY=:0
export XAUTHORITY=/home/gauthier/.Xauthority
# ... other things like offering abort, checking the device, mounting.
export OUTPUT=/tmp/rsync-output.log
# -a does not work on exFAT partitions, because of permissions, groups, owner. Use -rltD instead of -rlptgoD, which -a would imply.
sudo rsync -rltDv --exclude '*.app' --exclude-from=/home/gauthier/rsync-exclude.txt /home/gauthier/ $MOUNTPOINT/gauthier/ > $OUTPUT 2>&1
# Pop up a result window
# Get a summary
export RESULT_MESSAGE=/tmp/rsync-result.txt
echo "Backup result:" > $RESULT_MESSAGE
echo "" >> $RESULT_MESSAGE # \n does not seem to work in echo strings
tail -3 $OUTPUT >> $RESULT_MESSAGE
echo "" >> $RESULT_MESSAGE
echo "" >> $RESULT_MESSAGE
echo "Details in $OUTPUT" >> $RESULT_MESSAGE
xmessage -file $RESULT_MESSAGE
結果ウィンドウ(最後の行)ポップアップが機能しません。ウィンドウが表示されないだけでなく、以降のコマンドも実行されません。
xmessageが停止する原因は何で、どのように解決できますか?メッセージ形式を指定するより良い方法があると確信しており、これに洞察を提供していただきありがとうございます。
ファイルに対してxmessageを実行しようとすると、echo
ファイルは処理されますか?>>
8行を端末に貼り付けると(改行を含む)、うまく機能しますが、プロンプトによってタイミングが異なる可能性があります。また、手動で実行してもスーパーユーザーではありません。次のコマンドに進む前に完了してはいけませんecho
か?>>
答え1
xmessage
廃止され、メンテナンスされなくなりました。 UTF-8などをサポートしていません。gxmessage
代わりに(GTK +ベースのxmessageレプリケーション)必要があります。