web-dev-qa-db-ja.com

EC2の/ mntに/ tmpをマウントする方法は?

EC2インスタンスの一時ストレージ/tmp/mntエンドポイントをマウントし、ubuntuユーザーにデフォルトの書き込み権限を付与する最善の方法は何だろうと思っていました。

この方法で/etc/rc.localを編集することを提案する人もいます:

mkdir -p /mnt/tmp && mount --bind -o nobootwait /mnt/tmp /tmp

しかし、それは私にはうまくいきません(ファイルは異なります)。

デフォルトのfstabエントリを編集してみました。

/dev/xvdb /mnt auto defaults,nobootwait,comment=cloudconfig 0 2

/ mntを/ tmpに置き換えて、umask = 0777を指定しますが、cloudconfigが原因で機能しません。

Ubuntu 12.04を使用しています。ありがとう。

10
Claudio Poli

Ubuntuを実行しているため、より堅牢なアプローチは Eric Hammondの提案pstart スクリプト内に置き、バインドをすぐに実行することです マウント後/mnt

# File /etc/init/mounted-mnt.conf

# mounted-mnt - Binds /tmp to /mnt/tmp

description     "Binds /tmp to /mnt/tmp"

start on mounted MOUNTPOINT=/mnt

task

script
    test -d /mnt/tmp || mkdir -m 1777 /mnt/tmp
    mount --bind /mnt/tmp /tmp
end script

Apache/Passengerなどの一部のサーバーは、/tmpに重要な一時ファイルを作成する場合があります。 rc.local –起動シーケンスの最後–が実行されると、非表示になり、サーバーを混乱させます。

13
Rômulo Ceccon

Romulo Cecconによって提案されたUpstartスクリプトを使用 のアイデアは素晴らしいです。ただし、不明瞭なスクリプト内に魔法を隠したくない場合があります。 fstab内にマウントを追加しても問題ありません。

LABEL=cloudimg-rootfs   /    ext4   defaults    0 0

# auto mount ephemeral storage (if any)
# init contents in /etc/init/mounted-local*.conf
/dev/xvdb  /mnt/local1  auto  defaults,nofail,nobootwait,comment=cloudconfig  0 2
/dev/xvdc  /mnt/local2  auto  defaults,nofail,nobootwait,comment=cloudconfig  0 2
/dev/xvdd  /mnt/local3  auto  defaults,nofail,nobootwait,comment=cloudconfig  0 2
/dev/xvde  /mnt/local4  auto  defaults,nofail,nobootwait,comment=cloudconfig  0 2

# bind /tmp to /mnt/local1, might still be on / if no ephemeral storage
/mnt/local1  /tmp  none  bind

そして、これはUpstartスクリプトです:

# File /etc/init/mounted-local1.conf

# mounted-local1 - init ephemeral storage in /mnt/local1

description     "Initializes ephemeral storage in /mnt/local1"

start on mounted MOUNTPOINT=/mnt/local1

# provide defult, see /etc/init/mounted-tmp.conf for details
env MOUNTPOINT=/mnt/local1

task

script
    # fix permissions if needed
    test -d $MOUNTPOINT && chmod 1777 $MOUNTPOINT

    # log to /var/log/upstart/mounted-local1.log
    #echo "initialized $MOUNTPOINT"

end script

このようにして、任意のディレクトリ構造と一時ストレージにないものを作成できます。

あとはmkdir -p /mnt/local{1..4}と再起動(/ tmpをマウントしないと、現在のファイルをそこに隠してしまうからです)。

1
sfussenegger