From eb3facff0b5dc13821d3adbe552c08e9f481f208 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 21 Apr 2013 22:00:01 +0100 Subject: Add initial version of the utility --- drop-caches | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 drop-caches diff --git a/drop-caches b/drop-caches new file mode 100755 index 0000000..cb89f1e --- /dev/null +++ b/drop-caches @@ -0,0 +1,52 @@ +#!/usr/bin/python +# +# Copyright 2013 Lars Wirzenius +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# =*= License: GPL-3+ =*= + + +import cliapp + + +__version__ = '0.0' + + +class DropCaches(cliapp.Application): + + def add_settings(self): + self.settings.choice( + ['what'], + ['all', 'pagecache', 'inodes'], + 'drop WHAT ("all", "pagecache", "inodes")') + + def process_args(self, args): + # The values in this able are determined by the kernel. Change + # at your own risk. + drop_values = { + 'pagecache': 1, + 'inodes': 2, + 'all': 3, + } + + what = self.settings['what'] + if what not in drop_values: + raise cliapp.AppException('Unknown choice %s' % what) + + with open('/proc/sys/vm/drop_caches', 'w') as f: + f.write('%d\n' % drop_values[what]) + + +DropCaches(version=__version__).run() -- cgit v1.2.1