media contains valid xfsdump but does not support append

redhat の xfsdump を使用していて発生したエラー。
原因は別のシステムのバックアップファイルを指定していたため。スクリプトは↓

/sbin/xfsdump -L var -M mybackuphdd -l 0 -f /mnt/backup/myserver01-var.YYYYMMDD.dump /dev/rhel/var

既に myserver01-var.YYYYMMDD.dump を myserver01 で取得済みの状態で、同じ記憶媒体を利用して他のサーバでバックアップを取ろうとする ( 既に myserver01-var.YYYYMMDD.dump ファイルがある ) とエラーになります。
「バックアップファイルに指定したファイルは有効な xfsdump ファイルだが、対象のファイルは追加書きがサポートされていない」という意味らしいです。
別のサーバのシェルスクリプトを転用していたため、バックアップファイル名が他のサーバとかぶっていたことを見つけるのに時間がかかりました。
なお、-L ( バックアップ名称 ) と -M ( バックアップ媒体名称 ) を同時に指定しないと prompt で訊かれます。

MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance.

matplotlib のサンプルコードを実行している際にタイトルのようなエラーに遭遇。
実証コードは↓


import matplotlib.pyplot as plt
import numpy as np

np.random.seed(20171217)

fig = plt.figure()

for i in range(1,8):
    subplot = fig.add_subplot(4, 4, i)
    subplot.set_xticks([])
    subplot.set_yticks([])
    subplot.imshow(np.random.random((100, 100)), cmap=plt.cm.gray_r, interpolation='nearest')
    
for i in range(1,8):
    subplot = fig.add_subplot(4, 4, i+1)
    subplot.set_xticks([])
    subplot.set_yticks([])
    subplot.imshow(np.random.random((100, 100)), cmap=plt.cm.BuPu_r, interpolation='nearest')

Warning 全文は↓

/usr/local/share/anaconda3/lib/python3.6/site-packages/matplotlib/cbook/deprecation.py:106: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.
warnings.warn(message, mplDeprecation, stacklevel=1)

問題点は add_axes() 関数を使っていないのにどこでエラーになるか、ということ。
なお、add_axes() 関数のリファレンスは以下を参照
add_axes(*args, **kwargs)

サンプルコードで検証したところ、add_subplot() 関数で同じパラメータを渡すとこのエラーが出るらしいと判明。add_subplot() 関数のリファレンスは以下を参照。
add_subplot(*args, **kwargs)

上記の拙いコードでは、2 回目の subplot(4, 4, i+1) とやっている箇所で 1 回目の subplot(4, 4, i) の呼び出しと同じ引数を呼び出しているから生じるらしい。
正しく動作する ( Warning が出ない ) バージョンは↓


import matplotlib.pyplot as plt
import numpy as np

np.random.seed(20171217)

fig = plt.figure()
counter = 0

for i in range(1,8):
    subplot = fig.add_subplot(4, 4, i)
    subplot.set_xticks([])
    subplot.set_yticks([])
    subplot.imshow(np.random.random((100, 100)), cmap=plt.cm.gray_r, interpolation='nearest')

for i in range(1,8):
    subplot = fig.add_subplot(4, 4, i+8)
    subplot.set_xticks([])
    subplot.set_yticks([])
    subplot.imshow(np.random.random((100, 100)), cmap=plt.cm.BuPu_r, interpolation='nearest')

ただ単に 2 回目の for ループの add_subplot() 関数の 3 番目の引数を i+1 から i+8 に変更しただけ。

〇 対策
「ソースコード写し間違っていませんか」という話になると思います。
色々調べましたが、add_subplot() 関数には、stacklebel といったターゲット引数は指定できません。

〇 実行環境
・jupyter
・jupyterhub
・anaconda

jupyter notebook で作成した notebook 上でプロキシを有効化する

jupyter notebook で作成した notebook 上で、tensorflow の tutorial である mnist のコードを実行したところ、プロキシ環境を認識してくれませんでした。そこで notebook 上でプロキシを有効化する方法を説明します。

〇 結論
/usr/local/share/jupyter/kernels 以下にある kernel.json 内に環境変数を設定する。
設定例は以下の通り。


{
 "argv": [
  "/usr/local/share/anaconda3/bin/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "env": {
    "HTTP_PROXY": "http://example.jp:8123",
    "HTTPS_PROXY": "http://example.jp:8123",
    "FTP_PROXY": "http://example.jp:8123"
  },
 "display_name": "Python 3",
 "language": "python"
}

肝は “env” という箇所。ここに python の dictionary 型で環境変数を列挙します。
上記の例ではプロキシサーバが example.jp、待ち受けポートが 8123 としています。
システム統一の設定箇所というのはなく、各 kernel の kernel.json に一つずつ追加する必要があるようです。

〇参照情報

〇 環境
・Ubuntu Linux 16.04 ( たぶん )
・anaconda 8.25
・Jupyter notebook 4.4.0
・jupyterhub 0.8.0