先编辑一个.sh文件出来内容如下:
#!/bin/bash
# 数据库认证
user="root"
password="41b203b698"
host="127.0.0.1"
db_name="uwhere"
# 其它
backup_path="/mingshine/mysql_backup"
date=$(date +"%d-%b-%Y")
# 设置导出文件的缺省权限
umask 177
# Dump数据库到SQL文件
/alidata/server/mysql-5.1.73/bin/mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$db_name-$date.sql
注意:/alidata/server/mysql-5.1.73/bin/mysqldump这个要用绝对路径
如果是window下编辑的一到Linx下 会报错:
错误信息:
bad interpreter: No such file or directory
解决方法
错误信息:
bad interpreter: No such file or directory
解决办法
1.首先用vi命令打开文件
[root@localhost test]# vi test.sh
2.在vi命令模式中使用 :set ff 命令
可以看到改文件的格式为
fileformat=dos
3.修改文件format为unix
命令::set ff=unix
或者::set fileformat=unix
然后:wq保存退出就可以了
然后就是定时执行shell命令了
主要是用到crontab
先了解命令:
service crond status 查看crond运行状态
/bin/systemctl restart crond.service 重启crond
/bin/systemctl start crond.service 开启crond
如果要定时
Crontab 示例
1、在 凌晨00:01运行
1 0 * * * /home/linrui/XXXX.sh
2、每个工作日23:59都进行备份作业。
59 11 * * 1,2,3,4,5 /home/linrui/XXXX.sh
或者如下写法:
59 11 * * 1-5 /home/linrui/XXXX.sh
3、每分钟运行一次命令
*/1 * * * * /home/linrui/XXXX.sh
4、每个月的1号 14:10 运行
10 14 1 * * /home/linrui/XXXX.sh
注:进入crontab
vi /etc/crontab
#*/1 * * * * root /home/test.sh 每一分钟执行一次
backup_mysql.sh
#!/bin/bash
# 数据库认证
user="root"
password="0c56d95e99"
host="127.0.0.1"
db_name="smartphone"
# 其它
backup_path="/mingshine/mysql_back"
date=$(date +"%d-%b-%Y-%h-%m-%s")
# Dump数据库到SQL文件
/alidata/server/mysql-5.1.73/bin/mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$db_name-$date.sql