linux脚本

Python3脚本单进程实例实现

空扰寡人 提交于 2019-12-28 09:34:20
一、说明 一方面,前边写了“ Linux shell脚本单实例模式实现 ”,python也是日常需要使用的,所以也想来看python中如何实现。 另一方面,shell中没有类和实例的概念,所以我以为“单进程实例”和设计模式中的“单例模式”是一个意思,但实际来看还是有些差别的。 “单进程实例”要求的是在整个内存中,一个文件只有一个进程实例。“单例模式”能保证的是类只有一个实例,一是说他可能被同进程其他代码在多处调用、实例化然而他总是返回那一个实例,二是即便只有他一个文件一个类我们仍可以多次运行而效果只是一个进程中只有该类的一个实例。 或者用协议的级别进行类比,“单进程实例”和”单例模式“他们所处的层级是不一样的,“单进程实例”是整个内存级,“单例模式”是整个进程级。 二、Linux平台实现--使用标准库fcntl linux平台可以通过python标准库fcntl来实现锁 import os import time import fcntl class Test(): # 此函数用于获取锁 def _get_lock(self): file_name = os.path.basename(__file__) # 为了统一按linux的习惯放到/var/run目录去 lock_file_name = f"/var/run/{file_name}.pid" #

ubuntu下设置开机自启动项

浪子不回头ぞ 提交于 2019-12-27 17:50:28
这里说明, Ubuntu 中系统没有了 RH 系统中的 chkconfig 命令 ! 可用一些小工具来管理 Ubuntu 的启动选项: 小工具 rcconf : #sudo apt-get rcconf #sudo apt-get install rcconf root 下运行: #sudo rcconf 功能更全的工具 : sysv-rc-conf #sudo apt-get update #sudo apt-get install sysv-rc-conf 运行: #sudo sysv-rc-conf 也可以直接加入启动程序,例如把 /etc/init.d/red5 加入到系统自动启动列表中: #sudo sysv-rc-conf red5 on 其他使用方法见: google::Ubuntu::sysv-rc-conf 命令用法 也可以直接修改 直接改 /etc/rc0.d ~ /etc/rc6.d 和 /etc/rcS.d 下的东西, S 开头的表示启动, K 开头的表示不启动, 例如:想关闭 Red5 的开机自动启动,只需 #sudo mv /etc/rc2.d/S20red5 /etc/rc2.d/K20red5 就可以了。 Ubuntu自动启动程序 首 先,linux随机启动的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件

linux 开机自动执行脚本或者一些指定的程序

喜夏-厌秋 提交于 2019-12-27 10:09:06
环境:xp电脑主机+vm虚拟机+fedora9 先说点实在的东西,在虚拟机上要上电启动后自动挂载自己在xp上的共享文件夹,那么你可以这样: vim /etc/rc.local 把你要处理的脚本或者在后台执行的程序写在这个脚本上保存就可以了 /etc/init.d/network restart sleep 3 mount –t cifs –o user=Fish,password=Fish //192.168.0.100/linux /mnt/windows 下面就介绍下相关的基础知识: redhat的启动方式和执行次序是: 加载内核 执行init程序 /etc/rc.d/rc.sysinit # 由init执行的第一个脚本/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式/etc/rc.d/rc.local #相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中) /sbin/mingetty #等待用户登录 在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括: 调入keymap以及系统字体 启动swapping 设置主机名 设置NIS域名 检查(fsck)并mount文件系统 打开quota 装载声卡模块 设置系统时钟 等等。 /etc/rc.d

shell脚本学习4-输入和输出

两盒软妹~` 提交于 2019-12-27 05:11:16
上一节讲了shel的循环语句,本节介绍shell的输入和输出。输入包括命令行的输入和键盘或文件的输入,输出主要讲解输出重定向。 1. shell的输入 1.1 读取命令行中参数 shell脚本通过美元符号读取命令行中的参数,比如$0表示程序名,$1表示第一个参数,$2表示第二个参数,${10}表示表示第10各参数,以此类推。建立脚本test34.sh如下: #/bin/bash total=$[ $1 * $2 + $3 ] echo "$1 * $2 + $3 = $total" 运行如下: ./test34.sh 4 5 6 结果如下: 4 * 5 + 6 = 26 1)注意,当把字符串输入给shell脚本的时候,注意是以空格作为分隔符,如果字符串本身就有空格的话,那么用双引号或者单引号。举例脚本test35.sh如下: #/bin/bash echo "$1 is pretty nice!" 运行如下: ./test35.sh "wu lin wai zhuan" 结果如下: wu lin wai zhuan is pretty nice! 2) 注意,$0是程序名,这个程序名是运行时输入的完整路径,而不是文件名。比如下面的test36.sh脚本: #/bin/bash echo "shell path is $0" 运行输入: bash shell/test36.sh

Mysql导入脚本失败,提示需要SUPER权限

十年热恋 提交于 2019-12-27 04:53:57
1.删除: /*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */ 2.查看增删函数有没有重复 3.删除: set GLOBAL log_bin_trust_function_creators=on; 1. 错误信息 [Err] 1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation --常见于 RDS MySQL 5.6 ERROR 1725 (HY000) at line 1936: OPERATION need to be executed set by ADMIN --常见于 RDS MySQL 5.5 2. 错误出现的场景 在创建 存储过程、函数、触发器、事件、视图的时候出现这个错误。 从本地数据库导出 SQL,在 RDS 上应用该 SQL 的时候出现该错误。 从 RDS MySQL 5.6 实例下载逻辑备份,导入到 RDS 或本地数据库中。 3. 错误原因 导入RDS MySQL 实例:SQL 语句中含有需要 Supper 权限才可以执行的语句,而 RDS MySQL不提供 Super 权限,因此需要去除这类语句。 本地 MySQL 实例没有启用 GTID。 4. 解决 4.1 去除

论掌握一项脚本技术的必要性

感情迁移 提交于 2019-12-27 01:45:30
工作过程中,我们常常需要对一些我们可能会临时需要的数据进行清洗或者格式化等处理。这个时候就需要借助于一些奇淫技巧或者一些工具,诸如Windows平台下的notepad++,Mac/Linux平台下的vim等。 最近大数据部在进行成本优化,需要对各业务使用带宽、数据量、访问量、以及pv、uv等各种可进行成本优化的信息进行分类统计,然后进行逐步缩减优化。期间就频繁多次的借助于shell脚本、Java程序以及HQL来解决了大量问题。 场景一:如何快速过滤出来包含某些内容的行?(shell) #!/bin/bash cat your_file_name | grep "you_need_filter_content" > result_file 是不是发现很轻松得到了想要的所有行,而且再也不用通过n和N进行向下/上切换,或者通过ctrl+F或者ctrl+B翻页了。 场景二:实时调用API获取数据并录入MySQL。(shell) #!/bin/bash # 以Get请求为例 reqUrl = "yourapi" echo "request url is : $reqUrl " resData = $( curl $reqUrl ) echo "get data : < $resData >" parseJson ( ) { echo $1 | sed 's/.*' $2 ':\([^,}]*

三剑客、shell脚本

天涯浪子 提交于 2019-12-27 01:07:28
一、三剑客(sed,awk,grep) (一)三剑客-sed sed定义 :字符流编辑器:stream editor sed功能与版本: ①处理纯文本文件,日志,配置文件等==》linux ②增加、删除、修改、查询 ③sed --version,GNU sed version 4.2.1 (1)sed语法格式: sed 【选项】【sed指令】【输入文件】 sed -i.bak 's#oldboy#oldgirl#g' oldboy.txt i :sed命令的参数 s:sed命令/指令 g:--小尾巴/修饰 (2)sed执行过程: ①把第一行读取到内存中(模式空间) ②判断是否是我要的这一行是否满足条件(如果不是,重新读取) ③执行sed里面命令s,d,i。 ④sed命令会默认显示/输出当前内存,默认输出--》显示到屏幕 ⑤继续读取下一行直到读取到文件的最后一行。 (3)sed常用功能之p(print) 查看某一行内容: [root@oldboy-01 oldboy]# sed -n '1p' person.txt 101,oldboy,CEO [root@oldboy-01 oldboy]# sed '1p' person.txt #如果不带参数n,显示全部内容 101,oldboy,CEO 101,oldboy,CEO 102,zhangyao,CTO 103,Alex,COO

linux系统oracle服务自启动

巧了我就是萌 提交于 2019-12-26 20:26:44
折腾了我好几个时辰了,终于知道为什么自启动脚本一直无法成功执行,原来都是空格不对惹的祸。具体步骤说明如下: 1.修改dbstart和dbshut脚本 dbstart脚本默认值启动oracle服务,不启动监听服务,如果想在启动oracle服务的同时启动监听,就必须修改该脚本 将ORACLE_HOME_LISTNER值设为$ORACLE_HOME(原来是为$1) dbshut一样的道理,如果想关闭数据库服务的同时关闭监听服务也是将dbshut文件中的ORACLE_HOME_LISTNER值设为$ORACLE_HOME 2.创建oracle自启动脚本 由于修改了dbstart和dbshut脚本,直接用这个脚本就可以实现oracle服务和监听的同时启动或关闭,因此该脚本启动或关闭数据库只要调用dbstart或dbshut脚本就可以了。如果采用默认不做修改,那么必须在该脚本中增加启动监听和关闭监听的语句 su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start" su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop" 如果想开机自动启动oem或关闭自动一起关闭oem,则采用如下语句: su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start

5个Linux服务器一键综合测试性能和配置脚本工具

回眸只為那壹抹淺笑 提交于 2019-12-26 11:22:09
我们站长在选择云服务器的时候会浏览看到一些主机评测类网站,基本上看到的评测类网站对于商家和服务器的评测信息都包含各种跑分和测评脚本工具出来的数据。我们很多网友还是比较喜欢用这样的脚本进行给服务器跑分测试的。在这篇文章中,老蒋将会整理5个常用的Linux综合测试脚本以及实际的展示效果。但是老蒋需要预先告知的,这些所谓的测试数据其实和实际的使用体验还是有很大差异的。 在前一段时间,老蒋还特意对国内的几款主机商提供的香港服务器进行过测试,从脚本数据上看不出有问题,但是实际建站你会发现看似便宜且性能跑分差不多的服务器,但是做的网站打开页面就有较大的延迟。所以,以后我们在选择服务器的时候,不能单单看服务器配置,还得真实体验速度。 第一、Superbench wget https://raw.githubusercontent.com/oooldking/script/master/superbench.sh chmod +x superbench.sh ./superbench.sh 这个脚本来自Oldking,可以快速的展现当前服务器的配置、IO、SpeedTest内置下载速度。 第二、Bench wget -qO- bench.sh | bash 这个脚本是最早出来的,后来有几个脚本在基础上修改和完善出来的。 第三、ZBench wget -N –no-check-certificate

一、Shell 教程

ぐ巨炮叔叔 提交于 2019-12-26 09:08:01
Shell 教程 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。 Shell 在线工具 Shell 脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。 业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。 由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。 Shell 环境 Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。 Linux 的 Shell 种类众多,常见的有: 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(