#!/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()