shell备份脚本
Ⅰ 设计一个shell脚本程序,要求有如下功能: 实现自动备份功能和清理备份等
#!/bin/bash
TIME=`date+%Y%m%d|cut-b3-8`
#question1
tar-zcvf/home/bak/VAR_$TIME_BAK.gzip/var
#question2
ls-l/var>>/home/bak/VAR_$TIME_BAK.log
#question3
find/home/bak-name'*gzip'-mtime+1|xargsrm-rf
脚本名字backup.sh,放到/root下,然后用root创建cronjob
0 12 * * * /root/backup.sh
#question 4 (以redhat为例)
echo " /root/backup.sh " >> /etc/rc.local
#question 5
把下列代码写入cronjob中
#!/bin/bash
TIME=`date+%Y"/"%m"/"%d""%H":"%m`
if[-f/home/shell.log]
then
echo"$TIMErunning">/home/tmp.log
cat/home/shell.log>>/home/tmp.log
mv/home/tmp.log/home/shell.log
else
touch/home/shell.log
fi
脚本名字status.sh,放到/root下 (写的有点小问题,功能执行没问题)
0 * * * * /root/status.sh
Ⅱ linux 怎么通过Shell脚本定时备份Mysql数据库
PATH=$PATH:$HOME/bin #备份目录 BackupPath="/home/mysql/backup" #备份文件名 BackupFile="dbbackup"$(date +%y%m%d_%H)".sql" #数据库的用户名及密码 user="root" passwd="Welcome@123" #检查备份目录是否存在 if !(test -d $BackupPath) then mkdir $BackupPath fi #使用mysql提供的mysqlmp备份脚本 /usr/local/mysql/bin/mysqlmp -u$user -p$passwd --allow-keywords --default-character-set=utf8 --set-charset -R -A --master-data=2 >"$BackupPath"/"$BackupFile" #删除三个月前的备份文件 find "$BackupPath" -name "dbbackup*[log,sql]" -type f -mtime +3 -exec rm -rf {} \;
Ⅲ linux文件备份shell脚本
每次备份满25个后再删除:你每次备份是不同的文件名吗?
如果计算个数:
num=${ls 文件名 |wc -l } //就可以计算
if [$num -gt 25] //加条件
then
find $back -name *_$date_before -exec rm -rf {} \;
eles
...
fi
Ⅳ 如何使用shell脚本每天自动备份mysql数据库
mysql备份用自带的备份工具mysqlmp
每天自动执行用cron工具,把mysql的备份命令放在.sh文件里面
.sh文件放在/etc/cron.daily目录,就会每天自动执行了。
Ⅳ shell脚本telnet登陆交换机备份配置
#!/bin/bash
export datetime='date +%Y%m%d'
export BAKTIME=`date +%Y%m%d%H%M%S`
export user="admin"
export password="admin"
export back="dis cu"
export BAK_DIR=/back/h3c
for i in $(cat ip_file)
do
{
echo $user;
sleep 1;
echo $password;
sleep 1;
echo $back;
sleep 1;
echo " ";
sleep 5;
}|telnet $i > $BAK_DIR/$i-$BAKTIME.log
done
mkdir $BAK_DIR/H3C_$datetime
mv *-$datetime* H3C_$datetime
注释
####################################
export BAKTIME=`date +%Y%m%d%H%M%S` 输出系统时间
export user="admin" 此用户为交换机、路由器用户名
export password="admin" 此密码为交换机、路由器密码
export back="dis cu" 此命令为查看H3C交换机配置
export BAK_DIR=/home/erp/back/h3c 此目录是linux服务器备份交换机、路由器的存放目录
cat ip_file 此命令意思是查看ip_file文件中的内容,逐行查看
####################################
ip_file 文件添加交换机IP(注意:不要加双引号, 文件与脚本在同一目录下存放)
#以下为交换机、路由器IP地址
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.7
Ⅵ shell脚本备份db2数据库,该怎么处理
脚本内容如下:
/home/db2inst1/sqllib/db2profile
db2 connect to DB user USERNAME using PASSWORD
db2 import from x.del of delmessages log.msg insert into xxx
Ⅶ 编写一个shell脚本每天16:30备份mysql数据并压缩打包(打包文件按照当天日期命名)放到/root/data下
#!/bin/bash
date=$(date-d'+0days''+%Y-%m-%d')#声明一个变量,并赋值当天日期
cd/root/data#进入目录
mkdir$date#创建目录
mysqlmp-uusername-ppassworddb_name>$date"db_name.sql"#数据库备份,修改用户名密码,还有要备份数据库
tar-zcf$date".tar.gz"$date#压缩打包
rm-rf$date#删除源数据
保存为bak.sh,每天16:30备份定时任务,没有crontab命令:yum install vixie-cron
chmod +x /.../bak.sh
crontab -e
30 16 * * * /.../bak.sh
Ⅷ Shell备份文件,如果文件不存在则跳过继续执行下条脚本,如果文件存在则备份至/home/backup
name=文件名
if[-f"$name"]
then
cp"$name"/home/backup
fi
echo下条脚本
Ⅸ SHELL写个脚本,以达到每隔2小时对数据进行导出备份~~同时对24小时后的数据进行汇总的脚本~
先写一个文件,比如叫abc:
#MIN HOUR DAY MONTH DAYOFWEEK COMMAND
#每两个小时
0 */2 * * * ls
ls只是一个例子,假如你想要执行的备份数据的命令即可,然后在root权限下:
#crontab file abc
即可
Ⅹ linux shell脚本判断某个文件的大小,符合条件则备份并重命名
cat test.sh
#!/bin/sh
file=$1
file_size=` $file | awk '{print $2}'`
if [ $file_size -ge 10485760 ]
then
cp -p $file $file-bak
fi
chmod +x test.sh
./test.sh 1.txt
逐行解释
1.
查看脚本文件test.sh
2.
定义脚本默认用sh执行
3.
将文件路径赋予file变量。$1
表示位置变量即下面的1.txt
4.
计算文件大小并赋予file_size变量
5.
如果文件大小大于等于10m.
10485760为10m,-ge为大于等于。
6.
if语法关键字
7.
将文件重命名备份
8.
if语法关键字
9.
空行
10.
赋予脚本test.sh可执行权限
11.
执行脚本,输入位置变量1.txt.
