Bash /shell #1形式 #!/bin/bash #2强调 #条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]。...文件 bash 1.sh #13教训 rm -rf * 不能随便用,要慎重,路径错了,没有备份,跑路 #14收获 / 根目录 home 家目录 uplooking 用户目录(本机用户密码都是uplooking.../bin/bash #15尝试写遍历一个目录下的文件名的脚本 cleanDir=/home/uplooking/save cleanDay=`date -d"7 days ago " +%Y%m%d `...cleanDay.tar.gz echo $cleanFile cd $cleanDir for file in $(ls *) do echo $file #变量保存的字符串 done #16教训 Linx下的文件名字最后面有空格是允许的...脚本自动执行去掉交互 sudo ...
(6) 按下ctrl + a后手指松开,然后按方向键:选择相邻的pane。 (7) 鼠标拖动pane之间的分割线,可以调整分割线的位置。.../bin/bash echo "文件名:"$0 echo "第一个参数:"$1 echo "第二个参数:"$2 echo "第三个参数:"$3 echo "第四个参数:"$4 然后执行该脚本: acs...) git reset --hard HEAD^ 或 git reset --hard HEAD~:将代码库回滚到上一个版本 git reset --hard HEAD^^:往上回滚两次,以此类推 git...reset --hard HEAD~100:往上回滚100个版本 git reset --hard 版本号:回滚到某一特定版本 git checkout — XX或git restore XX:将XX...中读取多行数据 可以从命令行参数中读取文件名列表 xargs:将stdin中的数据用空格或回车分割成命令行参数 find .
列信息'; END IF; END; // DELIMITER ; 测试效果: 不允许修改成绩: 功能4、事务与存储过程 基础事务 根据DDL创建一个事务来保障修改用户手机号的时候如果出现问题回滚...ID; -- 这里替换成实际的学生ID -- 检查上一步操作是否成功 IF @@ERROR 0 OR ROW_COUNT() = 0 THEN -- 如果出现错误或者没有行被更新,则回滚事务...new_phone VARCHAR(20)) BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN -- 如果出现异常,回滚事务...bat脚本 在Windows系统上,你可以使用批处理(.bat)脚本来执行MySQL数据库的备份。以下是一个示例脚本,该脚本使用mysqldump工具每小时自动备份名为schooldb的数据库。...确保定期检查备份文件以确保它们正确生成且没有损坏。 请给我写一个每小时自动备份MySQL数据库的脚本,数据库名称教做schooldb。 shell脚本 #!
/bin/bash echo "helloworld" (3)脚本的常用执行方式 第一种:采用bash或sh+脚本的相对路径或绝对路径(不用赋予脚本+x权限) sh+脚本的相对路径 [jack@hadoop...(2)等号两侧不能有空格。 (3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算。 (4)变量的值如果有空格,需要使用双引号或单引号括起来。...4.3 特殊变量:`$n` 1、基本语法 $n(功能描述:n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}) 2、案例实操 (1)输出该脚本文件名称...1列和第7列,中间以“,”号分割。.../bin/bash #备份路径 BACKUP=/data/backup/sql/dy #当前时间 DATETIME=$(date +%Y-%m-%d_%H:%M:%S) echo "===备份开始=
写在前面 我们以前windows跑.net Framework程序的时候,发布,自己乖乖的替换程序;备份,也是自己一个一个的重命名备份;回滚,发布遇到问题的回滚更是不用说了;运维很是怕我们 这些用windows...生产环境的容器设计 由于生产环境经常需要修改配置、保留日志信息、需考虑程序的备份与回滚等等,我们不能像上面的测试环境一样,把整个发布的产品打包成一个镜像了,我们需要做特殊的处理; 熟悉docker的同学...,肯定会想到:挂载 对的,我们就这么处理,我们用docker -v 处理这头痛的问题; 程序的目录结构 我们程序的目录结构是这样的: backs:放历史版本的程序文件,按备份日期压缩命名; logs:程序的运行日志文件...; 通过更改文件夹名称的方式,当前运行程序替换为最新的; 重启程序; 心跳检测:通过输出部署成功,未通过执行回滚操作。.../logs/:/app/logs 回滚 回滚其实就是发布的逆操作; 发布是:同步最新程序->备份当前运行程序->替换; 回滚是->找到上一次的备份->删掉的当前运行程序->替换; Production.Rollback.sh
显示含有空格分隔符,1-3列的行数据,对上面命令的优化 ? 通过冒号分隔, 获取分割后第一列的行数据 ? 按照每一行的首字母排序 ?...sort命令(文本排序) sort:排序文件的行 n:按数值排序 r:倒序 t:自定义分隔符 k:选择排序列 u:合并相同行 f:忽略大小写 按空格分隔符分隔后第二列数据进行排序 (即对后面的数字进行排序...按空格分隔符分隔后第二列数据进行排序( 对数值排序, 对上一步的优化) ? 按空格分隔符分隔后第二列数据进行排序( 对数值进行倒序排序 ) ?...# -f 脚本文件名 awk -f awk.sh awk.txt ?...命 令 的 返 回 值是被执行的那个脚本的返回值,如果没有表达式是非零并且没有 bodyN 则返回空串。
通过冒号分隔, 获取分割后第一列的行数据 按照每一行的首字母排序 sort命令(文本排序) sort:排序文件的行 n:按数值排序 r:倒序 t:自定义分隔符 k:选择排序列...u:合并相同行 f:忽略大小写 按空格分隔符分隔后第二列数据进行排序 (即对后面的数字进行排序,但是不是比较数值大小,只是单纯的比较第一个数字大小,相同然后进行下一位比较…依次类推) 按空格分隔符分隔后第二列数据进行排序...( 对数值排序, 对上一步的优化) 按空格分隔符分隔后第二列数据进行排序( 对数值进行倒序排序 ) wc命令: 统计数目 word count:包括行数, 单词数, 以及字节数(包括空格符...——添加用户脚本 明确需求 添加用户 用户密码同用户名 静默运行脚本 避免捕获用户接口 程序自定义输出 脚本内容 第二行判断参数, 第三行判断用户是否存在, 第四行添加用户密码并解决数据回显...命 令 的 返 回 值是被执行的那个脚本的返回值,如果没有表达式是非零并且没有 bodyN 则返回空串。
但是要在正则表达式之前加入-E选项,如下: grep -E ^1[3,4,5,7,8,9][0-9]{9}$ 大于小于11位数字都是不符合的 四、案例之归档文件 实际生产应用中,往往需要对重要的数据进行归档备份...需求:实现一个目录归档备份的脚本,输入一个目录名称,将目录下所有文件按天归档保存,并将归档日期附加在文档文件名上,放在根目录下(/archive) 这里用到的归档命令: tar 后面可以加上.../bin/bash # 首先判断输入的参数个数是否为1 if [ $# -ne 1 ] then echo "参数个数错误!...,默认是制表符"\t" -c 按字符进行切割,后加n表示取第几列 比如-c 1 比如一个文本文件有以下诗歌: 比如说我们需要提取第一列,那应该这样写,按空格指定分割第一列;如下: cut -d "...统计passwd文件名,每行的行号,每列的列数 cat /etc/passwd | awk -F ":" '{print " 文件名:" FILENAME "\t行号:" NR "\t列数: " NR
回滚是非常常见的运维操作,我们可以通过jenkins选择对应的tag,或者选择对应的文件进行回滚,这里先介绍下利用备份文件来进行回滚 大体思路就是:现在jenkins主机上执行构建任务,同时对打包好的java...代码做一次备份,备份格式可以是包名+项目名+日期的格式,将备份好的包放到固定目录,当下一次选择构建回滚时,可以以参数的形式选择对应的要回滚的包名,然后将包名通过参数传给脚本,脚本则将包发到目标主机上完成回滚操作...Choices Reactive Parameter path="/export/jenkins/workspace/backup/${jenkinsProject.name}" rollback=['bash...,把备份的文件展示出来。...dst_dir/${jar_file}.war ssh root@$dst_ip "/shell/run-tomcat-app-manage.sh" ;; esac 4、开始构建 以上就是关于备份文件来进行回滚的
练习简单的shell 利用 date 进行文件的建立 假设我的服务器内有数据库,数据库每天的数据都不太一样,因此当我备份时,希望将每天的资料都备份成不同的档名, 这样才能够让旧的数据也能够保存下来不被覆盖...如果你开始执行这个 create_3_filename.sh 之 后,你可以进行两次执行:一次直接按 [Enter] 来查阅档名是啥? 一次可以输入一些字符,这样可以判断你的脚本是否设计正确!...bash 环境来执行脚本内的指令!...-u 侦测该文件名是否存在且具有『SUID』的属性? -g 侦测该文件名是否存在且具有『SGID』的属性? -k 侦测该文件名是否存在且具有『Sticky bit』的属性?...来做个例子吧~假设我要执行一个可以携带参数的 script ,执行该脚本后屏幕会显示如下的数据: 程序的文件名为何? 共有几个参数?
语法格式: . filename # 注意点和文件名之间有一个空格 或 source filename 示例 创建test1.sh,内容为: #!...不希望管理这个文件 git restore --staged xx:==将xx从暂存区里移除== git checkout — XX或git restore XX:==将XX文件尚未加入暂存区的修改全部撤销== 代码回滚...git reset --hard HEAD^ 或git reset --hard HEAD~ :将代码库回滚到上一个版本 git reset --hard HEAD^^:往上回滚两次,以此类推 git...reset --hard HEAD~100:往上回滚100个版本 git reset --hard 版本号:回滚到某一特定版本 远程仓库 git remote add origin git@git.acwing.com...中读取多行数据 可以从命令行参数中读取文件名列表 xargs:将stdin中的数据用空格或回车分割成命令行参数 find .
Bash远程命令执行漏洞(CVE2014-6271)检测脚本 作者:ziwen(dn8.net团队) 运行环境:python 2.7 #!...can email to me U question (ziwen@21.wf)" print option 下载地址 http://pan.baidu.com/s/1i3oVFV3 脚本会将结果回显出来.../cgi-bin/poc.cgi 然后运行该脚本即可 该脚本便会自动按顺序检测 会把结果回显出来 并会把成功的目标的passwd文件保存在 以目标域名+output命名的txt文档里,不成功不保存 请不要随意改变...exp.py的文件名 如果改变了EXP.PY的文件名请将batch.py里面的exp.py改为您修改的文件名 否则batch.py会运行失败 其他 linux如果用不了上面那个版本请试下这个Linux...Linux服务器系统盘打个快照,如果万一出现升级影响您服务器使用情况,可以通过回滚系统盘快照解决。
但是要在正则表达式之前加入-E选项,如下: grep -E ^1[3,4,5,7,8,9][0-9]{9}$大于小于11位数字都是不符合的 四、案例之归档文件实际生产应用中,往往需要对重要的数据进行归档备份...需求:实现一个目录归档备份的脚本,输入一个目录名称,将目录下所有文件按天归档保存,并将归档日期附加在文档文件名上,放在根目录下(/archive) 这里用到的归档命令: tar 后面可以加上 -c.../bin/bash # 首先判断输入的参数个数是否为1 if [ $# -ne 1 ] then echo "参数个数错误!..."\t"-c按字符进行切割,后加n表示取第几列 比如-c 1比如一个文本文件有以下诗歌:比如说我们需要提取第一列,那应该这样写,按空格指定分割第一列;如下: cut -d " " -f 1 cut_test.txt...统计passwd文件名,每行的行号,每列的列数 cat /etc/passwd | awk -F ":" '{print " 文件名:" FILENAME "\t行号:" NR "\t列数: " NR}
对于JavaEE和 Python程序员来说,工作的需要,你的老大会要求你编写一些 Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。.../bin/bash开头 脚本需要有可执行权限 # 编写第一个Shell脚本 需求说明:创建一个Shell脚本,输出hello world! vim hello.sh #!.../bin/bash echo "hello,world~" # 脚本的常用执行方式 方式一(输入脚本的绝对路径或相对路径) 说明:首先要赋予helloworld.sh脚本的+x权限,再执行脚本 比如...homelaaa/test.txt .txt dirname 基本语法 功能:返回完整路径最后/的前面的部分,常用于返回路径部分 dirname 文件绝对路径 (功能描述:从给定的包含绝对路径的文件名中去除文件名...frx01到/data/backup/db 备份开始和备份结束能够给出相应的提示信息 备份后的文件要求以备份时间为文件名,并打包成.tar.gz 的形式,比如:2021-03-12_230201.tar
第1条,变更要有回滚,在同样的环境测试过。 也是运维最繁琐,最苦逼的地方,所有的变更都必须有回滚的办法,在同样的环境下测试过。...所以我们需要给变更以回滚的可能,在各个步骤可能出错的情况下,考虑回滚到最初状态。优秀的运维人员对不考虑回滚的的操作都是敬而远之的。从某种意义上来说,运维是一门经验的学科,是一门试错的学科。...就算回滚,代价也是非常大的。你执行这样的语句非常简单,但是回滚恢复数据缺非常困难。...我们遇到过一个文件名中末尾有空格的情况,而有的同事rm -r习惯性的会在文件名后面加*,这样就成了rm -r aa *,所有当前目录的数据都被删除掉了!...;登录对应机器,“打开,关闭,打开,关闭”该脚本;跟相关人员再次确认执行的操作,顺序,时间点,可能的影响和回滚是否都准备好了;执行前还要退出这个机器,然后再登录进去,“打开,关闭”脚本;最后才在后台运行脚本
//将sda2进行备份并压缩 restore -t -f /dev/hda2/sda2_bak.dump //查看备份信息 restore -r -f /dev/hda2/sda2...,换到debian7上怎么都不行,发现是flock的问题,新版本的flock,如果你flock一个脚本, 那么这个脚本就没法执行了,二进制文件没事。...1821.convmv 转换文件名编码,其实这是一个 perl 脚本: 11:19:40#tp#test> echo 中国|iconv -f utf-8 -t gbk|xargs touch...2、其次在PS的结果中, grep行是 [s]sh, 而grep过滤的内容是ssh, 所以就不会命中grep自己. 1845.rsync 的几个同步问题: 最好别加 -u :否则如果回滚的话...nc 中一行 Bash 脚本创建并启动 Web Server:# 不过还是 pythom -m SimpleHTTPServer 好用 while true; do { echo -e
场景 线上出了问题,我需要去查找log来定位问题,但是由于线上数据量庞大,这些log文件每过一个小时就会自动回滚一次,尽管如此,有的log文件依然达到了五六g以上的大小。...在Windows下,安装Git Bash也可以使用split和cat命令。 分割文件的命令是split,通过输入split --help可以查询帮助信息。...假设现在有个6GB大小的文件test.log,这里简单介绍下几种分割的方式: 按大小分割文件 1 split -b 1000000000 test.log -b参数表示按字节大小进行分割,在数字后边要指定被分割的文件名...这个命令表示按1000000000byte的大小进行分割,近似于1GB,大概是953MB的大小。对于这个6GB大小的文件test.log,会被分割成6个小文件。...如果你分割了非常多的小文件,当文件名到了xyz之后,会变成xzaaa、xzaab、xzaac、xzaad……所以不用担心小文件过多而导致文件重名什么的。
Mysql定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据。利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。...1、创建备份文件夹 #cd /bak #mkdir mysqldata 2、编写运行脚本 #vi /usr/sbin/bakmysql.sh 注:如使用nano编辑此代码需在每行尾添加’&&’或...’;’连接符,否则生成的文件名末尾字符为乱码 代码: #!.../bin/bash # Name:bakmysql.sh # This is a ShellScript For Auto DB Backup and Delete old Backup # backupdir...-exec rm {} \; 表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。
动态下拉菜单 看一组效果图 当我们选择Rollback时,下拉菜单才会显示,用于回滚操作 选择Rollback后,RollbackFile的文件列表便会列出 其实实现这个功能是基于...Jenkins的Active Choices Reactive Parameter插件和groovy脚本实现,另外还需要配合选项参数(Choice Parameter)`` `` job_name...operation-control-api" rollbackfile="/data/jenkins/workspace/rollback/RollBackFile.txt" String rollback=["bash...以上是关于在容器里部署的方式,下面介绍下通过备份jar包来进行回滚的方式 path="/data/jenkins/workspace/backup/test-monitor-grade-44s" rollback...=['bash', '-c', "ls -t1 ${path}"].execute().text.readLines() if (Action.equals("RollBack")) { return
# LOG_FILE是一个全局变量,它就是一个文件名,如:'crawl.log' LOG_FILE = "/opt/xxx/log/debug.log" hdlr = logging.FileHandler...) 其中maxBytes指定每个日志文件的大小,如果文件超过1024KB就分割该日志文件,最大的备份文件个数是40个。...),M-Minutes(按分钟对日志进行分割),H-Hours(按小时对日志进行分割),D-Days(按天对日志进行分割),midnigh-roll over at midnight(每天半夜对日志进行回滚...),W{0-6}-roll over on a certain day;0-Monday(按照指定的日期如0-周一对日志进行回滚)。...when参数默认是“h”按小时分割,该参数对大小写不敏感,所以无所谓是H还是h了。
领取专属 10元无门槛券
手把手带您无忧上云