但行好事,莫问前程

挖了太多坑,一点点填回来

一句话 Shell 脚本(3)

cakephp, linux, script, shell

CakePHP 会在自己的项目文件夹的 app/tmp 下建立缓存文件,用来保存数据库表结构。在开启 debug 的情况下,每次发起请求后都会刷新缓存,但是在生产环境下,一般都是关闭了 debug 的,如果某次功能升级修改了表结构的话,缓存并不会主动更新,如此一来就会产生 InternalError 。

看来还是要写个脚本来手动删除这些缓存文件。

先看看缓存目录结构是什么样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
> tree
.
├── cache
│   ├── cake_toolbar_cache19c90b767c0870ceefeb6659d993da93
│   ├── models
│   │   ├── ccqo_cake_model_default_ccqo_accounts
│   │   ├── ccqo_cake_model_default_ccqo_articles
│   │   ├── ccqo_cake_model_default_ccqo_list
│   │   ├── ccqo_cake_model_default_ccqo_train_divisions
│   │   ├── ccqo_cake_model_default_ccqo_trainees
│   │   ├── ccqo_cake_model_default_ccqo_trainers
│   │   └── ccqo_cake_model_default_ccqo_train_infos
│   └── persistent
│       ├── ccqo_cake_core_cake_zh-cn
│       ├── ccqo_cake_core_debug_kit_zh-cn
│       ├── ccqo_cake_core_file_map
│       └── ccqo_cake_core_method_cache
└── logs

要删除的是缓存文件,目录不用删除。 OK ,那么就写个脚本一次性全部搞定好了。

先想到的是用 find 命令配合管道符来用:

1
> find . -type f | xargs rm -f

结果报了权限错误:

1
2
3
4
5
6
7
8
9
10
11
12
> find . -type f | xargs rm -f
rm: 无法删除"./cache/persistent/ccqo_cake_core_cake_zh-cn": 权限不够
rm: 无法删除"./cache/persistent/ccqo_cake_core_file_map": 权限不够
rm: 无法删除"./cache/persistent/ccqo_cake_core_debug_kit_zh-cn": 权限不够
rm: 无法删除"./cache/persistent/ccqo_cake_core_method_cache": 权限不够
rm: 无法删除"./cache/models/ccqo_cake_model_default_ccqo_list": 权限不够
rm: 无法删除"./cache/models/ccqo_cake_model_default_ccqo_train_divisions": 权限不够
rm: 无法删除"./cache/models/ccqo_cake_model_default_ccqo_trainers": 权限不够
rm: 无法删除"./cache/models/ccqo_cake_model_default_ccqo_articles": 权限不够
rm: 无法删除"./cache/models/ccqo_cake_model_default_ccqo_train_infos": 权限不够
rm: 无法删除"./cache/models/ccqo_cake_model_default_ccqo_trainees": 权限不够
rm: 无法删除"./cache/models/ccqo_cake_model_default_ccqo_accounts": 权限不够

这些文件是由 www-data 帐号生成的,所以我自然不能删除,所以加上 sudo 再删除吧。

几分钟之后又想了想,其实不用管道符,完全可以用 find 自己就可以完成了:

1
> find . -type f -exec sudo rm -f {} +

打完收工!

最近越来越感觉随着年纪的增长,接触的事情越来越多,记忆力没有以前好了。高中时代特别自豪地过目不忘的本事也指望不上了,看来还是好记性不如烂笔头,得养成一个良好的记录和总结的习惯,才会对将来的工作有所帮助。

Have a nice day!