linux脚本

Shell Script 入门教程

匿名 (未验证) 提交于 2019-12-03 00:10:02
和 Shell 的区别 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。 Shell 即是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一些命令,用户可以通过这些命令去访问操作系统内核的服务。 Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的 Shell。 Shell 在线工具 Shell 脚本,是一种为 Shell 编写的脚本程序,类似 Windows 的 bat 脚本,区别在于 bat 是用于操作 Windows 操作系统,而 Shell 脚本用于操作 Linux 系统。 脚本的编程环境 文本编辑器 能解释执行的脚本解释器 常见的解释器有: Bourne Shell (/usr/bin/sh 或 /bin/sh) Bourne Again Shell (/bin/bash) C Shell (/usr/bin/csh) K Shell (/usr/bin/ksh) Shell for Root (/sbin/sh) …… 一般使用 Bash,也就是 Bourne Again Shell,Bash 也是大多数 Linux 系统默认的 Shell。 Shell Script 开头的 #! 告诉系统解释此脚本文件的 Shell 程序路径,例如下面的

30个经典shell脚本(下)

匿名 (未验证) 提交于 2019-12-03 00:05:01
本文目录 21、从FTP服务器下载文件 22、连续输入5个100以内的数字,统计和、最小和最大 23、将结果分别赋值给变量 24、批量修改文件名 25、统计当前目录中以.html结尾的文件总大 26、扫描主机端口状态 27、Expect实现SSH免交互执行命令 28、批量修改服务器用户密码 29、打印乘法口诀 30、getopts工具完善脚本命令行参数 21、从FTP服务器下载文件 #!/bin/bash if [ $# -ne 1 ]; then echo "Usage: $0 filename" fi dir=$(dirname $1) file=$(basename $1) ftp -n -v << EOF # -n 自动登录 open 192.168.1.10 # ftp服务器 user admin password binary # 设置ftp传输模式为二进制,避免MD5值不同或.tar.gz压缩包格式错误 cd $dir get "$file" EOF 22、连续输入5个100以内的数字,统计和、最小和最大 #!/bin/bash COUNT=1 SUM=0 MIN=0 MAX=100 while [ $COUNT -le 5 ]; do read -p "请输入1-10个整数:" INT if [[ ! $INT =~ ^[0-9]+$ ]]; then echo

30个经典shell脚本上

匿名 (未验证) 提交于 2019-12-03 00:03:02
注:转自https://weibo.com/linuxprobe?topnav=1&wvr=6&topsug=1&is_hot=1(刘遄老师的Linux就该这样学) 先了解下编写Shell过程中注意事项: 开头加解释器:#!/bin/bash 语法缩进,使用四个空格;多加注释说明。 命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。 默认变量是全局的,在函数中变量local指定为局部变量,避免污染其他作用域。 有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。 写脚本一定先测试再到生产上。 1、获取随机字符串或数字 获取随机8位字符串: 方法1: # echo $RANDOM |md5sum |cut -c 1-8 471b94f2 方法2: # openssl rand -base64 4 vg3BEg== 方法3: # cat /proc/sys/kernel/random/uuid |cut -c 1-8 ed9e032c 获取随机8位数字: 方法1: # echo $RANDOM |cksum |cut -c 1-8 23648321 方法2: # openssl rand -base64 4 |cksum |cut -c 1-8 38571131 方法3: # date +%N |cut -c 1-8

centos7开机自启动脚本

匿名 (未验证) 提交于 2019-12-02 23:57:01
两种实现方式: 方法一:(rc.local) 1、因为在centos7中 /etc/rc.d/rc.local 的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2、赋予脚本可执行权限 假设 /usr/local/script/autostart.sh 是你的脚本路径,给予执行权限 chmod +x /usr/local/script/autostart.sh 3、打开 /etc/rc.d/rc.local 文件,在末尾增加如下内容 /usr/local/script/autostart.sh 方法二:(chkconfig) 1、将脚本移动到 /etc/rc.d/init.d 目录下 mv /usr/local/script/autostart.sh /etc/rc.d/init.d 2、增加脚本的可执行权限 chmod +x /etc/rc.d/init.d/autostart.sh 3、添加脚本到开机自动启动项目中 cd /etc/rc.d/init.d chkconfig --add autostart.sh chkconfig autostart.sh on chkconfig启动脚本规范 在脚本开头加入下面内容: #!/bin/sh #chkconfig:2345 80 90 #decription:autostart 说明

pxe装机脚本

匿名 (未验证) 提交于 2019-12-02 23:55:01
#!/bin/bash read -p "请输入IP地址:" name iptables -F systemctl stop firewalld setenforce 0 yum -y install vsftpd &> /dev/null [ -d /var/ftp/asd ] || mkdir /var/ftp/asd yum -y install tftp-server syslinux dhcp &> /dev/null rpm -q tftp-server rpm -q dhcp umount /dev/sr0 mount /dev/sr0 /var/ftp/asd sed -i "s/yes/no/g" /etc/xinetd.d/tftp cd /var/ftp/asd/isolinux cp vmlinuz initrd.img /var/lib/tftpboot/ cp /root/anaconda-ks.cfg /var/ftp/ks.cfg chmod 777 /var/ftp/ks.cfg sed -i "s/cdrom/#cdrom/" /var/ftp/ks.cfg sed -i "s/url/#url/" /var/ftp/ks.cfg sed -i "5a url --url=ftp://${name}/asd" /var/ftp/ks.cfg cp

shell脚本

匿名 (未验证) 提交于 2019-12-02 23:55:01
Shell入门: 1、用户空间用来跑应用程序 2、shell程序用来做人机交互 3、shell程序以单行命令来执行,缺乏逻辑关系。 4、Python与shell的区别:使用shell来实现Linux的批量处理,而不是去开发应用程序 5、ipython:是Python的交互式shell,比默认的python shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。 6、程序是执行某个功能的一段代码。程序必须包含的两个要素:指令(即命令),数据(由变量提供),还需要一个逻辑关系(可有可无) 7、date命令查看系统时间,hwclock(clock)命令查看硬件时间 8、chroot命令:切换根文件系统。l临时根文件系统,加载磁盘驱动文件 9、在开发语言中Tab键叫做制表符(\t,代表四个空格建) 10、bash的特性: ①命令历史(history) 作用:查看之前使用的命令 关于命令历史的文件(每个用户家目录下的.bash_history,在关机的时候会自动写入一次,重启后还会有。将内存中的命令历史手动写入:history -r) 记录历史数量(HISTSIZE=1000) (HISTCONTRUL=ignoredups(忽略重复的历史命令) history的常长见操作: 1、history(查看所有历史命令) 2、!+编号

定时任务执行SHELL脚本

匿名 (未验证) 提交于 2019-12-02 23:47:01
转载一篇,来源作者==》老鼠抗刀,满街找猫 为什么用linux定时任务,而不是在项目加定时任务呢?原因就是防止因为各种原因项目崩溃。。所以就用了更加稳定的linux定时任务(我是这么想的( ^_^ ))。 符号      “*”代表取值范围内的数字, 例子 现在来介绍我的具体操作步骤(包括编写shell脚本 并执行编写的sql文件)     打开linux终端>进入cat(我自己创建的)目录>创建crontab文件夹 并进入> 执行命令 crontab -e进入编辑状态编写crontab表达式 1 * * * * /cat/crontab/sbin.sh(每天凌晨1点执行total.sh脚本)> Ctrl+X 建退出>Yes(保存)>回车> crontab -l (如果能看到你刚才保存的crontab,就成功了~~) 例子: 假设当前用户是root,要建立root用户的定时任务 crontab -e 选择编辑器,编辑定时任务(这里假设是编辑器是vi) 按i进入编辑模式 1 * * * * /cat/crontab/sbin.sh 按esc退出编辑模式进入普通模式,输入:x或:wq保存退出 上几张图~~ 简单的执行sql的shell脚本 注意事项 下面再附一篇介绍: ***********************************************************

Ansible概述与使用

北慕城南 提交于 2019-12-02 23:37:58
Ansible概述 自动化批量化执行安装或者命令执行。自带的非常多的模块实现基本常用的功能,操作比较简单 ansible基于python开发,运维进行二次开发比较容易。 管理模式简单,只需修改一个配置文件加入机器组 本次实验环境 关闭防火墙和slinux systemctl stop firewalld iptables -F setenforce 0 所有机器修改hostname和hosts文件:3台 [root@ansible ~]# hostname ansible [root@ansible ~]# bash [root@client1 ~]# hostname client1^C [root@client1 ~]# bash^C [root@client2 ~]# hostname client2^C [root@client2 ~]# bash^C hosts文件 192.168.36.128 ansible 192.168.36.130 client1 192.168.36.129 client2 ansible server端安装 安装:Ansible 下载阿里云镜像 wget http://mirrors.aliyun.com/repo/Centos-7.repo 把镜像放入repo源 yum clean all yum -y install ansible

shell 案例

匿名 (未验证) 提交于 2019-12-02 23:36:01
编写 hello world 脚本 #!/bin/bash echo "hello world" 通过位置变量创建 Linux 系统账户及密码 #!/bin/bash #$1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数 useradd "$!" 每周 5 使用 tar 命令备份/var/log 下的所有日志文件 #vim /root/logbak.sh #编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖 #注意 date 命令需要使用反引号括起来,反引号在键盘<tab>键上面 tar -czf log- date +%Y%m%d .tar.gz /var/log 00 03 5 /root/logbak.sh 一键部署 LNMP(RPM 包版本) #!/bin/bash #使用 yum 安装部署 LNMP,需要提前配置好 yum 源,否则该脚本会失败 #本脚本使用于 centos7.2 或 RHEL7.2 systemctl start httpd mariadb systemctl enable httpd mariadb 实时监控本机内存和硬盘剩余空间,剩余内存小于 500M、根分区剩余空间小于 1000M 时,发送报警邮件给 root 管理员 #!/bin/bash #Author:丁丁历险(Jacob) #提取根分区剩余空间 disk

-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory 问题

匿名 (未验证) 提交于 2019-12-02 23:34:01
linux 启动脚本时报错:-bash: ./bin/start.sh: /bin/bash^M: bad interpreter: No such file or directory 原因是 文件的格式是dos,修改为unix 就OK了 具体操作步骤 以下是原文博客地址: 原文:https://blog.csdn.net/JeffreyHv/article/details/51726600