L2TP用户添加和删除、搜索脚本
#!/bin/bash
#author Template
. /etc/init.d/functions DATE_TIME=$(date +%F-%T)
FILE_PATH='/etc/ppp/chap-secrets'
FILE=`basename ${FILE_PATH}`
BAK_DIR='/etc/ppp/backup'
BAK_FILE="${BAK_DIR}/${FILE}.${DATE_TIME}"
find ${BAK_DIR} -name "chap-secrets.*" -mtime +30 -delete [ $UID -ne ] && {
echo "Please run as root"
exit
}
function Usage(){
echo "Usage: $0 {--add|--del|--search} username [password]"
exit
} [ -f $FILE_PATH ] || touch ${FILE_PATH}
[ -d ${BAK_DIR} ] || mkdir ${BAK_DIR} case "$1" in -a|--add)
[ $# -ne ] && echo "Usage: $0 {--add|-a} username password" && exit shift
if egrep "^\b$1\b" ${FILE_PATH} &> /dev/null;then
action $"vpnuser,$1 is exist" /bin/false
exit
else
chattr -i ${FILE_PATH}
\cp ${FILE_PATH} ${BAK_FILE}
echo -e "$1\t\tl2tpd\t\t$2\t\t*" >> ${FILE_PATH}
[ $? -eq ] && action $"Add $1" /bin/true || action $"Add $1" /bin/false
chattr +i ${FILE_PATH}
fi
;;
-d|--del)
[ $# -ne ] && echo "Usage: $0 {--del|-d} username" && exit shift
if [ `grep "^$1\b" ${FILE_PATH} | wc -l` -lt ];then
action $"vpnuser $1 is not exist" /bin/false
exit
else
chattr -i ${FILE_PATH}
\cp ${FILE_PATH} ${BAK_FILE}
sed -i "/^$1/d" ${FILE_PATH}
action "Del $1" /bin/true
chattr +i ${FILE_PATH}
exit
fi
;;
-s|--search)
[ $# -ne ] && echo "Usage: $0 {--search|-s} username" && exit shift
if [ `grep -w "$1" ${FILE_PATH} | wc -l` -lt ];then
echo $"vpnuser $1 is not exist";exit
else
echo $"vpnuser $1 is exist ";exit
fi
;;
*)
Usage
;;
esac
L2TP用户添加和删除、搜索脚本的更多相关文章
- 打通前后端全栈开发node+vue进阶【课程学习系统项目实战详细讲解】(3):用户添加/修改/删除 vue表格组件 vue分页组件
第三章 建议学习时间8小时 总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章] 演示地址:后台:demo ...
- Javascript DOM 03 表格添加、删除 + 搜索
获取 tBodies.tHead.tFoot.rows.cells 隔行变色 鼠标移入高亮 添加.删除一行 DOM方法的使用 ...
- Django实现简单的用户添加、删除、修改等功能
一. Django必要的知识点补充 1. templates和static文件夹及其配置 1.1 templates文件夹 所有的HTML文件默认都放在templates文件夹下. 1.2 stati ...
- mysql用户密码修改,用户添加、删除及设置权限
一下的示例所用用户名和密码为:test,111111 Mysql密码修改: Mysql修改密码需要root的权限,先执行mysql -uroot -p(密码); 1)使用set password方式来 ...
- 使用vue实现用户管理 添加及删除功能
简单的管理系统-增删改查 添加及删除功能 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu ...
- 如何添加或删除ubuntu用户和组【转】
转自:http://blog.csdn.net/sin90lzc/article/details/7525670 在创建用户时,需要为新建用户指定一用户组,如果不指定其用户所属的工作组,自动会生成一个 ...
- 用Bash脚本将Linux普通用户添加为系统管理员
将Linux普通用户添加为系统管理员在Gnome或KDE这样强大与完善的桌面环境下是非常简单的事情,一般来说在用户设置的对话框里就直接有相应选项.不过,出于简洁与高效的风格,自己目前并未使用这些高端但 ...
- tab一些 添加 删除 搜索
tab一些 添加 删除 搜索 案例 <!DOCTYPE html><html lang="en"><head> <meta charset ...
- Linux命令之useradd和userdel(添加、删除用户)
一.[useradd]:添加用户命令 1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户. 2.格式 useradd [-d home] [-s sh ...
随机推荐
- 在Scala IDEA for Eclipse或IDEA里程序编译实现与在Spark Shell下的对比(其实就是那么一回事)
不多说,直接上干货! 比如,我这里拿主成分分析(PCA). 1.主成分分析(PCA)的概念介绍 主成分分析(PCA) 是一种对数据进行旋转变换的统计学方法,其本质是在线性空间中进行一个基变换,使得变换 ...
- BIO,NIO,AIO的理解
BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善. NIO: ...
- GridView相同内容合并单元格
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web; ...
- 利用BenchmarkDotNet 测试 .Net Core API 同步和异步方法性能
事由: 这两天mentor给我布置了个任务让我用BenchmarkDotNet工具去测试一下同一个API 用同步和异步方法写性能上有什么差别. 顺带提一下: 啊啊啊啊 等我仔细看文档的时候文档 发现它 ...
- metaclass元类解析
一.创建类的流程 二.什么是元类 在Python3中继承type的就是元类 示例 # 方式一 class MyType(type): '''继承type的就是元类''' def __init__(se ...
- vue封装storage案例
src/model/storage.js var storage={ set(key,value){ localStorage.setItem(key,JSON.stringify(value)); ...
- windows下 php集成环境如何通过cmd执行命令
---恢复内容开始--- php学习过程中 Windows环境下的php集成程序很多 这样方便了学习 但是在熟悉命令使用方面可以说是十分不便 本文将从两个方便 向大家介绍如何快速通过cmd命令实现命令 ...
- #include< >和#include“ ”的区别
< >引用的是编译器的类库路径里面的头文件 " "引用的是你程序目录的相对路径中的头文件 假如你编译器定义的自带头文件引用在C:\Keil\c51\INC\下面 则#i ...
- MyBatis源码探索
每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的.SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获 ...
- .NET中异常类(Exception)
异常:程序在运行期间发生的错误.异常对象就是封装这些错误的对象. try{}catch{}是非常重要的,捕获try程序块中所有发生的异常,如果没有捕获异常的话,程序运行的线程将会挂掉,更严重的是这些错 ...