1.首先明白这里使用shell脚本编写
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。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(/sbin/sh)
……
在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像#!/bin/sh,它同样也可以改为#!/bin/bash。
#! 解释打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用 php 写 shell 脚本,扩展名就用 php 好了。
更多shell解释,请参考http://www.runoob.com/linux/linux-shell.html
2.shell脚本示例
(1)在目录 /opt新建mysqldump目录 (/opt/mysqlbackup)[目录个人自行定义]
在mysqlbackup新建dbbackup.sh文件
命令:cd /opt/mysqlbackup
vim dbbackup.sh
wq //保存退出
(2)
#!/bin/bash
#dbpwd='as!@#888'
#dbuser=root
host=127.0.0.1
port=3306
backupdir='/opt/mysqlbackup/'
time=` date +%Y%m%d%H`
dbname='aishe'
mysqldump -uroot -p $dbname | gzip > $backupdir/db_$time.sql.gz
find $backupdir -name "db_*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1
(3)将(2)shell代码,粘贴复制到 刚新建的dbbackup.sh文件,保存退出
(4)执行shell脚本
cd /opt/mysqlbackup
sh -vx dbbackup.sh
回车后,要求输入数据库密码(因为shell中没有写入数据库密码[数据库密码写入后,执行shell会报错,大意是密码不要写在shell中,注意安全,所以密码在my.cnf设置])
查找my.cnf: whereis my.cnf
vim my.cnf
在my.cnf加入
user=XXXXXX
password=XXXXXX
如果上述都就绪,接着执行 sh -vx dbbackup.sh
输入正确的mysql密码后,如果没有任何警告和错误, 查看 备份目录是否生成文件
cd /opt/mysqlbackup //备份文件存放目录(shell脚本中有设置)
ll
如果出现
备份文件脚本执行成功!
(5)手动执行脚本,成功
将脚本加入计划任务
crontab -e
写入
33 17 * * * /opt/mysqlbackup/dbbackup.sh
//分 时 日 月 周 脚本路径
crontab格式如果任务执行失败了,可以通过以下命令查看任务日志
tail -f /var/log/cron
3.此外 执行并检测shell脚本
命令: sh -vx xxxx.sh //xxx表示shell文件名
(2)shell脚本里面写字符串执行时经常会报错XXX command not found
删除空格
网友评论