linux脚本

Linux下执行脚本文件出现-bash: ./startup.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录

余生长醉 提交于 2019-12-06 16:50:48
原因:脚本文件是在Windows环境下编辑的,windows环境下,每一行的结尾是\n\r,而Linux环境下,每一行结尾是\n。使用cat -A filename 可以看到每行的结尾后面多出了一个^M,如图 ^M符号则是每一行多出来的\r的显示。 解决方法:执行命令 sed -i 's/\r$//' filename [bhsoft@localhost 桌面]$ sed -i 's/\r$//' test.sh 执行完命令之后再次查看脚本文件,发现没有^M符号了,就可以执行脚本了。 来源: https://www.cnblogs.com/wangrong1/p/11995441.html

Linux下mysql5.6.33安装脚本

风流意气都作罢 提交于 2019-12-06 16:43:05
#!/bin/bash rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64 cp mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz /usr/local cd /usr/local tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz mv mysql-5.6.33-linux-glibc2.5-x86_64 mysql groupadd mysql useradd -g mysql mysql cd /usr/local/mysql/ chown -R mysql:mysql ./ ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data cp support-files/mysql.server /etc/init.d/mysqld chmod 755 /etc/init.d/mysqld cp support-files/my-default.cnf /etc/my.cnf echo 'export MYSQL_HOME=/usr/local/mysql' >> /etc/profile echo 'export PATH=$MYSQL_HOME/bin:

企业日常巡检shell脚本

做~自己de王妃 提交于 2019-12-06 14:37:45
Linux内部查看系统信息 $INTERNET192忽略 1 #!/bin/bash 2 3 function system(){ 4 echo "#########################系统信息#########################" 5 OS_TYPE=`uname` 6 OS_VER=`cat /etc/redhat-release` 7 OS_KER=`uname -a|awk '{print $3}'` 8 OS_TIME=`date +%F_%T` 9 OS_RUN_TIME=`uptime |awk '{print $3}'|awk -F, '{print $1}'` 10 OS_LAST_REBOOT_TIME=`who -b|awk '{print $2,$3}'` 11 OS_HOSTNAME=`hostname` 12 13 echo " 系统类型:$OS_TYPE" 14 echo " 系统版本:$OS_VER" 15 echo " 系统内核:$OS_KER" 16 echo " 当前时间:$OS_TIME" 17 echo " 运行时间:$OS_RUN_TIME" 18 echo "最后重启时间:$OS_LAST_REBOOT_TIME" 19 echo " 本机名称:$OS_HOSTNAME" 20 } 21 function

软件自动化部署脚本

二次信任 提交于 2019-12-06 14:07:00
2017-11-16 20:19:53 1:设计思路:   (1)软件自动化部署脚本,即在一台虚拟机运行脚本,就将其他虚拟机上面的软件安装好了;   (2)而前提是自己的机器搭建好了yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库),这样在一台机器上面运行脚本,其他机器可以从这台机器上下载【先安装wget命令】,安装【即解压缩的操作】,配置环境变量等等【前提是脚本也实现了免密登陆操作实现】;   (3)而这些操作可以分成两个过程,如果配置好免密登陆ssh登录,然后使用boot.sh发送一个install.sh脚本到各个机器上面,从而实现软件自动化部署操作; 2:自动化下载,安装,配置环境变量的脚本(甚至刷新一下配置文件的命令): #!/bin/bash #首先指定自己的yum仓库即可以下载软件的服务器名称,方便引用。 BASE_SERVER=master #安装wget软件 yum install -y wget #下载yum仓库上面的软件 wget $BASE_SERVER/soft/jdk-7u45-linux-x64.tar.gz #安装,即解压缩安装自己的软件 tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local #cat一个东西到这个文件下面。#配置环境变量。<<重定向输出,>>重定向输入。

Shell脚本中执行mysql语句

南笙酒味 提交于 2019-12-06 12:37:17
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本。本文描述了在Linux环境下mysql 数据库 中,shell脚本下调用sql语句的几种方法,供大家参考。对于脚本输出的结果美化,需要进一步完善和调整。以下为具体的示例及其方法。 1、将SQL语句直接嵌入到shell脚本文件中 --演示环境 [root@SZDB ~]# more /etc/issue CentOS release 5.9 (Final) Kernel \r on an \m root@localhost[(none)]> show variables like 'version'; +---------------+------------+ | Variable_name | Value | +---------------+------------+ | version | 5.6.12-log | +---------------+------------+ [root@SZDB ~]# more shell_call_sql1.sh #!/bin/bash # Define log TIMESTAMP=`date +%Y%m%d%H%M%S` LOG=call_sql_${TIMESTAMP}.log echo "Start execute sql statement at

用Python写一个ftp下载脚本

血红的双手。 提交于 2019-12-06 12:25:03
用 Python 写一个 ftp 下载脚本 ---- 基于 Red Hat Enterprise Linux Server release 6.4 (Santiago) ;python 2.6.6 Ps :少侠我接触 Python 半个月以来接到的第一个需求,虽然如此简单的一个脚本,少侠我磕磕绊绊却用了将近一天半的时间才写出来,但还是很开心,毕竟也粗来了,废话不多说,切入正题。 因为一开始没有用过 ftplib 模块,所以各种谷歌度娘一堆资料杂乱不堪,话不清,理不乱的,本文实现的功能简单,下面介绍一下,以免误导读者。 需求:师傅给了一个需求,写一个 ftp 自动下载的脚本。似乎下载文件没什么难的,用 ftp 下载文件似乎更简单, get , mget 完事。但是需求是,服务器上主要是 dat 文件在备份,当备份完成后,会生成一个同名字的 ack 文件,要把备份完成的 dat 文件下载到本地,然后删除云端服务器的 ack 和 dat 文件。虽然听着这个需求挺找抽,也挺容易实现的,但谁叫我是菜鸟呢,当时就蒙圈了。 ftp 地址 192.168.213.129 用户名 dmp 密码 zcxc123! 文件位置 /var/ftp/pub/pizi 我看了下大概 3 分钟生成一个文件,文件忙时可能要 60M 以上,网管网估计悬,师父让我先写脚本,回头联系拉内网走。吐槽完毕,开始上干货: --

Linux下实现tomcat定时自动重启

淺唱寂寞╮ 提交于 2019-12-06 10:52:48
先新建重启脚本: cd /usr/local/tomcat/apache-tomcat-6.0.26 vi restart.sh 注:第一行为进入tomcat目录,第二行为新建restart.sh脚本。 写入以下内容: /usr/local/tomcat/apache-tomcat-6.0.26/bin/catalina.sh stop sleep 1m /usr/local/tomcat/apache-tomcat-6.0.26/bin/catalina.sh start 注:第一行为停止服务,路径自行修改,第二行为进程等待1分钟,第三行为启动服务。 修改脚本权限,否则运行时会Permission denied: chmod 777 *.sh 测试: /usr/local/tomcat/apache-tomcat-6.0.26/restart.sh 接下来是定时启动服务,用到任务调度的crond常驻命令: crontab -e 写入以下内容: 30 03 * * * /usr/local/tomcat/apache-tomcat-6.0.26/restart.sh 注:03点30分调用该脚本,成功则出现:crontab: installing new crontab。 cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: 引用: /sbin

Mac 使用 launchctl 定时运行程序

左心房为你撑大大i 提交于 2019-12-06 08:38:25
在linux下可以用crontab来定时执行任务,在MAC下可以用launchctl来定时执行任务。 我们使用launchctl来做一个定时执行任务的例子。 首先做一个可执行的脚本,脚本名字叫做:AutoMakeLog.sh,脚本的功能就是在/Users/jackin/Downloads/目录下建一个日志文件。 Shell文件/Users/jackin/AutoMakeLog.sh: cd /Users/jackin/Downloads/ LOG=`date +"%Y-%m-%d %H:%M:%S"` LOGFILE=`date +"date-log-%Y%m%d.log"` echo $LOG > $LOGFILE 脚本要改成可执行的权限 chmod 777 AutoMakeLog.sh 然后进入到~/Library/LaunchAgents下建一个plist文件,这个就是糸统执行任务时要使用的文件 文件名叫com.jackin.launchctl.plist,文件内容如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist

面试时必须懂的shell知识

六月ゝ 毕业季﹏ 提交于 2019-12-06 07:08:43
一、Shell脚本是什么、它是必需的吗? 一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务。 二、什么是默认登录shell,如何改变指定用户的登录shell? 在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的。使用chsh命令可以改变默认的shell。示例如下所示: chsh <username> -s <shell> 三、可以在shell脚本中使用哪些类型的变量? 可以定义如下两种类型的变量 系统定义变量 用户定义变量 四、如何将标准输出和错误输出同时重定向到同一位置? 可以有两种实现方法: 2>&1 &> 五、shell脚本中”if”语法如何嵌套? 示例如下: if [ 条件 ] then; command ... else if [ 条件 ] then; command... else command... fi fi 六、shell脚本中"$?"标记的用途是什么? “$?”可以来检查前一命令的结束状态,通常”0”表示成功,”1-255”表示运行失败 七、在shell脚本中如何比较两个数字 ? 可以使用 -gt 、 -lt`` 、 -ne 、 -eq`来进行比较。 八

自动部署脚本-bash

给你一囗甜甜゛ 提交于 2019-12-06 06:28:12
from here !/bin/bash Check if user is root if [ $(id -u) != "0" ]; then Echo_Red "Error: You must be root to run this script" exit 1 fi . common.sh . basic_soft.sh . config_soft.sh paths config current_path= pwd config_path=$current_path/config include_path=$current_path/include package_path=$current_path/package env_path=/etc/profile.d/env.sh 安装准备工作 所有的ssh-keygen命令的输入,都直接回车 Prepare_Install 安装 Nginx Insert_Nginx 安装 PHP Insert_PHP 安装数据库 Insert_MariaDB 安装 Redis Insert_Redis -------------- 以下属于 mynote 应用紧密相关,经常变动部分 cd ~/init . app.sh . config.sh for file in $include_path/*.sh do . $file done