linux脚本

常用的Shell脚本

让人想犯罪 __ 提交于 2019-11-28 13:26:53
1、通过位置变量创建linux系统账户及密码 $1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数 1 #!/bin/bash 2 # Author: Peter zh 3 # Blog: https://home.cnblogs.com/zhangwduoduoj/ 4 # Time: 2019-08-17 19:19:45 5 # Name: userad.sh 6 # Version: v1.0 7 # Description: This is a Script. 8 9 `useradd $1` 10 echo "$2" |passwd --stdin "$1" 2、每周5使用tar命令备份/var/log 下的所有日志文件,防止文件覆盖 vim backup.sh tar zcfP /tmp/varlog_$(date +%F).tar.gz /var/log crontab -e * * * * 5 bin/bash /server/scripts/backup.sh 3、实时监控本机内存和硬盘剩余空间,剩余内存小于500M,根分区剩余空间小于1000M的时候发送报警邮件 1 #!/bin/bash 2 # Author: Peter zh 3 # Blog: https://home.cnblogs.com/zhangwduoduoj/ 4 # Time:

学习笔记5

女生的网名这么多〃 提交于 2019-11-28 12:33:11
一网络配置 1.将Linux主机接入到网络,需要配置网络相关设置 主机名 IP/netmask 路由:默认网关 DNS服务器 2.网络配置命令 配置网络接口 ifconfig命令 ifconfig [interface] ifconfig -a ifconfig IFACE [up|down] 路由管理命令 route 命令 查看:route -n 添加:route add 删除:route del 显示网络连接 netstat命令 -t: tcp协议相关 -u: udp协议相关 -w: raw socket相关 -l: 处于监听状态 -a: 所有状态 -n: 以数字显示IP和端口 -e:扩展格式 -p: 显示相关进程及PID 配置Linux网络属性:ip 命令 ip addr { add | del } IFADDR dev STRING [label LABEL]:添加地址时指明网卡别名 [scope {global|link|host}]:指明作用域 global: 全局可用 link: 仅链接可用 host: 本机可用 添加路由:ip route add 主机路由:IP 网络路由:NETWORK/MASK 添加网关:ip route add default via GW dev IFACE 删除路由:ip route del TARGET 显示路由:ip route

shell脚本编写守则

你。 提交于 2019-11-28 12:25:03
现在centos7中使用的是bash软件,通过以下命令可以查看bash版本: [root@localhost ~]# cat /etc/redhat-release #查看系统的版本 CentOS Linux release 7.5.1804 (Core) #我这里使用的是centos 7.5 1804 [root@localhost ~]# bash --version #查看bash的版本 GNU bash, 版本 4.2.46(2)-release (x86_64-redhat-linux-gnu) #这一行就是bash版本 Copyright (C) 2011 Free Software Foundation, Inc. 许可证 GPLv3+: GNU GPL 许可证版本3或者更高 <http://gnu.org/licenses/gpl.html> 这是自由软件,您可以自由地更改和重新发布。 在法律允许的范围内没有担保. 若生产环境下的服务器使用的是较老版本的系统及shell,那么建议将其升级到最新版的shell,因为近两年老版本被暴露出存在较严重的安全漏洞。 bash软件曾经爆出了严重漏洞(破壳漏洞),凭借此漏洞,别人可能会接管计算机的整个操作系统,得以访问各种系统内的机密信息,并对系统进行更改等。任何人的计算机系统,如果使用了bash软件,都需要立即打上补丁

keepalived+nginx+lnmp 网站架构

孤者浪人 提交于 2019-11-28 11:32:43
《网站架构演变技术研究》 项目实施手册 2019年8月2日 第一章 : 实验环境确认 4 1.1-1.系统版本 4 1.1-2.内核参数 4 1.1-3.主机网络参数设置 4 1-1-4 .项目拓扑图 5 第二章 : 部署后端web服务 6 2-1 .安装Nginx服务端 6 2-1-1 .安装nginx 依赖包 6 2-1-3.修改Nginx配置文件 7 2-1-4.创建nginx启动文件软链接 8 2-1-5.启动nginx,开机自启 8 2-1-6. 查询端口80状况 8 2-1-7.安装其他web服务器 8 2-2 .部署PHP环境 9 2-2-1 .安装PHP 软件 9 2-2-3. 查询端口9000状况 9 2-2-3.安装其他web服务器 9 第三章 : 部署NFS服务 9 3-1 .安装NFS 服务器端 10 3.1-1 .nfs软件安装 10 3-1-2 .创建共享目录 10 3-1-3. 修改/etc/exports配置文件 10 3-1-4. 启动服务,开机自启 10 3-1-5. 本地挂载测试 10 3-2. 部署web客户端挂载nfs存储 11 3-2-1.配置web服务器 11 3-2-2.手动挂载-临时挂载 11 3-2-3. 配置开机自动挂载-永久挂载 11 3-2-4. 安装其他 web服务器 12 3-3. 部署rsync备份服务器 12 3-3

Shell编程(1)

天大地大妈咪最大 提交于 2019-11-28 10:15:31
1.shell简介 2. shell分类 3. 查看shell 4. 第一个shell脚本 5. shell编程常用命令 5.1 grep 5.2 cut 5.3 sort 5.4 uniq 5.5 seq 5.6 tr 6. 课后作业 前言 什么是脚本? 脚本简单地说就是一条条的文字命令(一些指令的堆积),这些文字命令是可以看到的(如可以用记事本打开查看、编辑)。 常见的脚本: JavaScript(J S ,前端) ,VBScript, ASP, JSP,PHP(后端) ,SQL(数据库操作语言),Perl, Shell ,python,Ruby,JavaFX, Lua等。 为什么要学习和使用shell? Shell属于内置的脚本 程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务(批处理) 语法简单,代码写起来比较轻松,简单易学 1.1 Shell 简介 Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理, Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。 下面是流程示意图: Shell 既然是工作在 Linux 内核之上,那我们也有必要了解下 Linux 相关知识。 Linux 是一套免费试用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX

Linux计划任务及压缩归档

时间秒杀一切 提交于 2019-11-28 10:12:51
计划任务介绍 我们可以通过一些设置。来让电脑定时提醒我们该做什么事了。或者我们提前设置好,告诉电脑你几点做什么几点做什么,这种我们就叫它定时任务。而遇到一些需要执行的事情或任务。我们也可以通过命令来告诉电脑一会临时把这个工作给做一下 总结:在我们LINUX中,我们可以通过crontab和at这两个东西来实现这些功能的 计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据 计划任务的安排方式分两种: 一种是定时性的,也就是例行。就是每隔一定的周期就要重复来做这个事情 一种是突发性的,就是这次做完了这个事,就没有下一次了,临时决定,只执行一次的任务 at和crontab这两个命令: at:它是一个可以处理仅执行一次就结束的指令 crontab:它是会把你指定的工作或任务,比如:脚本等,按照你设定的周期一直循环执行下去 at一次性计划任务使用 at语法格式:at 时间 下载at程序 [root@ken ~]# yum install at -y 启动atd服务 [root@ken ~]# systemctl restart atd [root@ken ~]# ps aux | grep atd root 1166 0.0 0.1 25904 944 ? Ss 17:52 0:00 /usr/sbin/at -f root 1168 0.0 0.1 112704 956

shell编程-大杂烩

谁说胖子不能爱 提交于 2019-11-28 08:22:20
shell学习 不退出vim执行 ::!bash change_ip.sh 10.190.172.6 10.190.172.7 VIM 中执行 Shell 命令,有以下几种形式: 1. :!command 不退出 vim ,并执行 shell 命令 command ,将命令输出显示在 vim 的命令区域,不会改变当前编辑的文件的内容 例如: :!ls -l , 如果你正在编辑一个脚本 ,vim ErrorMail.sh, 代码基本写完,你想测试一下你不用保存退出,你可以先保存 :w! 然后再执行这个脚本 :!sh ErrorMai.sh. 此时你并没有退出 vim 编辑器,返回结果后,你只要回车一下可以继续编辑 2. :r!command 将 shell 命令 command 的结果插入到当前行的下一行 . 例如: :r!date ,读取系统时间并插入到当前行的下一行。 3. :起始行号,结束行号 !command 将起始行号和结束行号指定的范围中的内容输入到 shell 命令 command 处理,并将处理结果替换起始行号和结束行号指定的范围中的内容 . 例如 :62,72 !sort ,将 62 行到 72 行的内容进行排序 , 可以只指定起始行,例如 :62 !tr [a-z] [A-Z] ,将 62 行的小写字母转为大写字母 linux shell 脚本输入参数解析 #!

shell脚本不用data函数实现日期查询

[亡魂溺海] 提交于 2019-11-28 07:29:24
shell脚本实现查询指定日期的前N天或后N天 1 #!/bin/bash 2 func(){ 3 read -p "请输入年月日(格式:2019-01-01): " date 4 if echo $date |grep -Eq "[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}" && date -d $date +%Y%m%d >/dev/null 2>&1 #判断输入的年月日格式是否正确 5 then 6 year=${date:0:4} 7 month=${date:5:2} 8 day=${date:8:2} 9 read -p "请输入1(向前查找)或2(向后查找):" num 10 #判断输入是否正确 11 if [[ "$num" =~ ^[1,2]{1}+$ ]];then 12 calculate #如果 13 else 14 echo "请按要求输入!" 15 func 16 fi 17 else 18 echo '请输入正确格式的日期!' 19 func 20 fi 21 } 22 #获取月份对应的天数 23 getDay(){ 24 case $2 in 25 1|3|5|7|8:|10|12) day=31;; 26 4|6|9|11) day=30;; 27 2) 28 if [ `expr $1 % 4` -eq 0 -a `expr

shell

吃可爱长大的小学妹 提交于 2019-11-28 07:24:53
Shell Shell脚本入门 Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件, Shell就是一个命令行解释器,Shell本身是一个用C语言编写的程序, Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。shell脚本脚本文件通常以.sh作为后缀名,第一行以#!开头指定执行脚本的程序: #!/usr/bin/bash #是shell脚本中的行注释符。 这里我们来使用最常用的bash 1. 新建文件hello_shell $ vi hello_shell 2. 输入Shello命令 #! /bin/bash echo "Hello Shell!" 3 、保存 echo是一个输出命令,就是输出一句话 4. 赋权限 我们要让系统知道我们刚才新建的文件是可执行的,所以我们要赋给其可执行的权限 现在我们的文件是不可执行的,只有读写权限: 下面是赋权 $ chmod 711 hello_shell 5. 执行 ./ 表示再当前目录查找命令,如果什么都不加的话,系统默认会在PATH里寻找,而的当前目录通常不在PATH里,所以找不到命令。 通常有三种执行脚本的方式: 1、sh start.sh: 在终端中创建一个sh子进程执行脚本, 执行者需要拥有脚本的读权限

shell脚本8-16

自作多情 提交于 2019-11-28 06:18:42
1、基于C语言格式的for语句写法: for((i=0;i<10;i++));do【for(初始条件;条件判断语句;值变化语句);do】   循环体 done for循环的优点:不容易进入死循环 2、while语句的格式: 初始值 While 条件;do   循环体   Let i++(使初始值变化) Done 练习:写一个for循环遍历本网段中所有的up的电脑 #!/bin/bash declare -i sum=0 for i in $(seq 1 100);do ping -c 1 -w 1 10.6.12.$i &> /dev/null if [ $? -eq 0 ];then let sum++ echo "10.6.12.$i是通的" else echo "10.6.12.$i是不通的" fi done echo "总共有$sum台电脑在线" 求1-100的偶数和 #!/bin/bash for i in $(seq 0 2 100);do let sum+=$i echo $i done echo $sum 打印九九乘法表 for i in {1..9};do for ((j=1;j<=$i;j++));do echo -n -e "$i*$j=$(($i*$j))\t" done echo done Linux文本处理三剑客之sed命令 1、sed命令作为流编辑器