ネットワーク構築 パソコン設定 サーバ構築 無線LAN構築 名古屋市 豊田市

ホリテック ブログ 最新投稿

ホストのcronから、dokcerコンテナ内のファイルを定期的に削除

Dockerで、Wordpressを構築してあるのですが、Wordpressのプラグインで、『All-in-one WP Migration』ってバックアップ用にプラグインがあります。

 

このプラグインで、手動ですが、バックアップを取っておけば、他のサーバへのデータ移行が簡単なんですが、バックアップの際に、All-in-one WP Migrationのファイルを選択すると、ダウンロードしてパパソコン内に保存ができるのですが、ローカル内に、wp-content/ai1wm-backups/というディレクトリにずっとそのファイルが残ります。(拡張子が、wpressというファイルが、バックアップをするたびに生成されて保存されます)

 

その為、放っておくと、すごくディスク容量を使うため、定期的に消さないといけないことに気づきました。

 

上記に書いたように、WordpressをDockerで構築してあるため、さて、どうしたものか・・・・と考え、ホスト側のcronで消すことにしました。

 

ホスト側から、Dockerにログインするには、

docker exec -it 「コンテナID」 /bin/bash と記載しますが、

コンテナIDは、docker psで確認します。


root@localhost:~# docker ps
CONTAINER ID   IMAGE                     COMMAND                  CREATED        STATUS       PORTS                                       NAMES
u45d387js677   wordpress:latest          "docker-entrypoint.s…"   3 months ago   Up 3 hours   0.0.0.0:8800->80/tcp, :::8800->80/tcp       wordpress

 

上記だと、u45d387js677となりますので、


root@localhost:~# docker exec -it u45d387js677  /bin/bash
root@u45d387js677:/var/www/html#
root@u45d387js677:/var/www/html#
root@u45d387js677:/var/www/html#
root@u45d387js677:/var/www/html# pwd
/var/www/html
root@u45d387js677:/var/www/html#
root@u45d387js677:/var/www/html#

として、ログインできます。

 

 

ってことは、これはrmで、ワイルドカード指定した、wpressを削除ってやればいいじゃね!!って思って実行。・・・・うまく消せない・・・・

 

 

コマンド指定が間違っていたのですが、シェルに渡してrmしようとすると、-cのオプションがいるんだって

参照:https://mimirswell.ggnet.co.jp/blog-368

 

 

実行したコマンドが以下のコマンド、


root@localhost:~# docker exec -it u45d387js677  /bin/bash -c "rm wp-content/ai1wm-backups/*.wpress"
root@localhost:~# 
root@localhost:~#

 

これを、ctontabで入れたら、動くじゃんって思ったら、動かない・・・・(;_:)

 

原因は、オプションでした。下記に同じようにできなかった人の例が

参照:https://www.infra-study.com/docker/cron%E3%81%A7docker-exec%E3%81%AB%E3%82%88%E3%82%8A%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%A6%E5%A4%B1%E6%95%97%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE/

参照:https://510052.xyz/posts/k78e5r2n1cty0ygv3ie5/

 

 

そこで、crontab -eで以下のように記載。毎日13:00に指定して消去した場合です。




00 13 * * * docker exec u45d387js677 /bin/bash -c "rm wp-content/ai1wm-backups/*.wpress"


 

 

 

Linuxcron,Docker,Linux