linux脚本

Nginx日志分割脚本

北战南征 提交于 2019-12-26 01:27:47
文章目录 一、概述 二、编写日志分割脚本 三、执行脚本 四、验证 一、概述 Nginx自身不具备日志分割处理的功能,但可以通过Nginx信号控制功能的脚本实现日志的自动切割,并通过Linux的计划性周期性地进行日志切割。 二、编写日志分割脚本 [root@localhost ~]# vim jioaben.sh #!/bin/bash #Filename:fenge.sh d=$(date -d "-1 day" "+%Y%m%d") ##前一天时间 logs_path="/var/log/nginx" ###自己创建的nginx日志存放目录 pid_path="/usr/local/nginx/logs/nginx.pid" ###nginx日志进程号 [ -d $logs_path ] || mkdir -p $logs_path ##如果没有这个文件,则创建 mv /usr/local/nginx/logs/access.log ${logs_path}/access.log-$d ##将nginx访问日志移动到自建的日志存放目录 kill -USR1 $(cat $pid_path) ##杀死昨天的日志进程号 find $logs_path -mtime +30 | xargs rm -rf ##清空30天前的日志 三、执行脚本 [root@localhost ~]#

ubuntu 定时执行php

时光怂恿深爱的人放手 提交于 2019-12-25 22:37:49
命令: sudo vi /etc/crontab */100 * * * * root wget -q -O /dev/null http://localhost/test.php ①开机自动运行: 先写了测试脚本,在/usr下,trans.sh gedit /etc/init.d/rc.local 在最后加上脚本的地址就OK了 ②定时运行脚本: 以下部分转自:http://hi.baidu.com/michaelxdt/item/a8e4fec22a59867388ad9e62 cron,是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业。 1. 关于crontab 在Ubuntu server 9.10下,cron是被默认安装并启动的。通过/etc/crontab文件,可以看到以下内容: ----------------------------------------------------------------------------------------------------------------------- # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install

linux获取pid脚本

﹥>﹥吖頭↗ 提交于 2019-12-25 13:12:34
在linux上获取pid然后杀死该进程的使用率还是很高的,使用以下脚本方便了许多,该脚本里没有杀死进程,只是做了一个输出,如果需要杀死进程,可以将" kill -9 $pid " 这行代码放开,就可以起到杀死进程的作用。 #!/bin/bash # 获取程序的pid, 在执行文件后面携带参数。 #例: # ./getPid.sh 3306 # 数字的正则 regular= * [ ! 0 - 9 ] * ; if [ " $1 " ! = " $regular " ] ; # 判断是否是数字 then # 是数字 pid=$ ( netstat - nlp | grep $1 | awk '{print $7}' | awk - F "/" '{print $1}' ) ; #获取端口的pid if [ - n " $pid " ] # 判断pid是否等于空 then # 不等空 echo $pid ; # kill -9 $pid; else #等于空 echo "该端口未启动" ; fi else # 不是数字 echo "参数必须是数字" ; fi 刚开始学,如果有哪不恰当,请指出,蟹蟹 来源: CSDN 作者: 阿浪、 链接: https://blog.csdn.net/weixin_42265053/article/details/103695243

Linux shell脚本的字符串截取

眉间皱痕 提交于 2019-12-25 03:09:07
假设有变量 var=http://www.google.com/test.htm 一 # 号截取,删除左边字符,保留右边字符。 echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 即删除 http:// 结果是 : www.google.com/test.htm 二 ## 号截取,删除左边字符,保留右边字符。 echo ${var##*/} ##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符 即删除 http://www.google.com/ 结果是 test.htm 三 %号截取,删除右边字符,保留左边字符 echo ${var%/*} %/* 表示从右边开始,删除第一个 / 号及右边的字符 结果是: http://www.google.com 四 %% 号截取,删除右边字符,保留左边字符 echo ${var%%/*} %%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符 结果是:http: 五 从左边第几个字符开始,及字符的个数 echo ${var:0:5} 其中的 0 表示左边第一个字符开始,5 表示字符的总个数。 结果是:http: 六 从左边第几个字符开始,一直到结束。 echo ${var:7} 其中的 7 表示左边第8个字符开始,一直到结束。

Linux网络服务与shell脚本——Shell编程之条件语句

好久不见. 提交于 2019-12-25 01:12:47
第八章 Shell编程之条件语句 一、条件测试 1、测试命令 (1) test 条件表达式 (2) [条件表达式] (3) $?:根据返回值判断前者是否成立 2、 文件测试 :根据指定路径名称,判断对应文件或目录以及读写执行状态等 (1) -d :是否为目录(Directory) (2) -e :是否存在(exist) (3) -f :是否为文件(file) (4) -r :是否有读取权限(read) (5) -w :是否有写入权限(write) (6) -x :是否有执行权限(excute) (7) 示例:[ -d /etc ]或test -d /etc (8) -nt :判断文件A是否比B新 (9) -ot :判断文件A是否比B旧 (10) -ef :判断两个文件是否为同一文件(是否指向同一个inode) (11)示例: test A -nt B或[ A -nt B ] 3、 整数值比较 (1) -eq :等于 (2) -ne :不等于 (3) -gt :大于 (4) -lt :小于 (5) -ge :大于等于 (6) -le :小于等于 (7) 示例:[ a -eq b ] 4、 字符串比较 (1) = :等于 (2) != :不等于 (3) -z :是否为空 (4) 示例:[ a = b ]、[ -z a ] 5、 逻辑测试 (1) && :逻辑与

基于脚本的服务器集群管理工具

别等时光非礼了梦想. 提交于 2019-12-24 14:09:54
基于脚本的服务器集群管理工具 背景: 随着云计算服务的普及,基于云计算的PaaS、IaaS受到越来越多的关注,使用这些服务的用户也越来越多。对于一些大型的应用而言,可能包含多种服务,而这些服务需要部署在多台服务器上。例如:某个应用可能部署了10台数据库服务器,10台Web Http服务器以及5台静态文件存储服务器等。那么作为应用程序管理员来说,一台一台地登录去管理这些机器显得非常繁琐,而且对于同一种服务(比如数据库服务)的机器需要执行的管理任务又都大致相同,那么对每台机器进行重复的工作也会增加集群管理员的负担。 应对上述需求场景,我开发了这样一个基于脚本的服务器集群管理工具,它主要具有如下功能和优点: 1、 针对不同应用场景,对服务器进行高效的分组管理。 2、 以可执行脚本作为子任务,可以自定义脚本内容,具有高度灵活性。以多个脚本组成的有序组序列作为可执行任务单元。脚本可分组,同组内可排序,有效组织和管理。 3、 针对不同需求,创建“服务器组<->脚本组”的执行任务。随时启动该任务,便可下达对该服务器组的基于脚本序列的任务执行命令。 4、 提供对“服务器组<->脚本组”的执行任务的运行状态查询,便于监控。可以查看远程服务器控制台的输出显示,当前运行状态,执行到哪个脚本,哪个脚本有异常等等信息。 应用场景举例: 假如我想为我的10台机器同时安装LAMP

Linux中shell脚本的三种方式

淺唱寂寞╮ 提交于 2019-12-24 14:05:26
shell脚本执行的三种方式 解释含义 1 sh script-name & bash script-name 脚本本身没有执行权限 2 ./script-name 指在当前路径上执行脚本(脚本需可执行权限);chmod a+x script-name 3 source script-name & . script-name 读入脚本并执行脚本 sh script-name ->推荐这种方法 这是当脚本文件本身没有可执行权限时常常使用的方法,或者脚本文件开头没有指定解释器时需要使用的方法。 注意:这是source 去执行脚本和其他几种执行shell方式的最大不同,source是先读入所有内容再去执行脚本 来源: CSDN 作者: 陆山右 链接: https://blog.csdn.net/weixin_41919236/article/details/103679887

Linux shell脚本启动 停止 重启jar包

女生的网名这么多〃 提交于 2019-12-24 14:01:32
最近做的微服务jar包想弄在持续集成中自动化部署,所以首先得有一个操作jar包的脚本 只需将jar文件的路径替换到APP_NAME的值就可以了,其他不用改 注意:window编辑的shell文件,通过WinSCP上传的Linux服务器,需要改变文件的格式(查看文件格式,vim编辑后输入 :set ff),还有环境变量,一定要配置啊 修改格式操作步骤: # vim robotcenter.sh 然后输入 set:ff=unix # :wq! 保存退出 #!/bin/bash export JAVA_HOME=/root/tools/jdk1.8.0_181 export JRE_HOME=/$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin #这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=/root/app/springBoot/robotcenter.jar #使用说明,用来提示输入参数 usage() { echo "Usage: sh robotcenter.sh [start|stop|restart

CentOS日常维护及常用脚本

最后都变了- 提交于 2019-12-24 13:58:09
[root@192-16.x.x xiewenming]# curl myip.ipip.net 当前 IP:42.62.x.x 来自于:中国 北京 北京 联通/电信 www.17ce.com cdn解析网站测试 如果遇到 -bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory,解决办法如下: vi /etc/environment add these lines... LANG=en_US.utf-8 LC_ALL=en_US.utf-8 结束php进程,主进程除外 ps -ef|grep php|grep -v grep|cut -c 9-15|xargs kill -9 用指定用户执行脚本或命令 su - tomcat -c /usr/local/tomcat/bin/startup.sh 切换root执行 sudo sh tomcat.sh start 查查哪个目录的inode节点使用的多 [root@opt]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/vda2 576K 497K 80K 87% / tmpfs 235K 5 235K 1% /dev/shm [root

shell脚本中写定时任务

和自甴很熟 提交于 2019-12-24 13:50:00
echo "* * * * * hostname >> /tmp/tmp.txt" > > / var / spool / cron / root #hostname >> /tmp/tmp.txt"是任务,可以改成你需要的 /var/spool/cron/root是后面的root就是自己的linux用户名,往这个文件里面写,也就是往crontab -e写,如果是其他用户,就改成你需要的用户 来源: CSDN 作者: Phoebus888 链接: https://blog.csdn.net/weixin_44049466/article/details/103680143