㈠ 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脚本定时备份mysql数据库
每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据;
需求:
1,每天4点备份mysql数据;
2,为节省空间,删除超过3个月的所有备份数据;
3,删除超过7天的备份数据,保留3个月里的
10号
20号
30号的备份数据;
#创建shell文件
vim
backup_mysql.sh
mysqlmp
-uroot
-p123456
--all-databases
>
/data/dbdata/mysqlbak/`date
+%Y%m%d`.sql
find
/data/dbdata/mysqlbak/
-mtime
+7
-name
'*[1-9].sql'
-exec
rm
-rf
{}
\;
find
/data/dbdata/mysqlbak/
-mtime
+92
-name
'*.sql'
-exec
rm
-rf
{}
\;
#创建定时任务
crontab
–e
0
4
*
*
*
/data/dbdata/backup_mysql.sh
㈢ shell脚本怎么实现日志备份到本地Linux系统
把日志打包,压缩,拉取到本地
㈣ linux自动备份shell
#!/bin/bash
#Function:压缩备份文件
src_dir="/data/"
bak_dir="/data.bak/"
while:
do
#现获取所有的目录
cd$src_dir&&dirs=`ls-l|egrep'^d'|awk'{print$NF}'`
fordirin$dirs:
do
tarzcf${dir}.tgz$dir#压缩目录
mv${dir}.tgz$bak_dir#移动压缩包到备份目录
done
sleep5#每5s钟检查一次
done
#!/bin/bash
#Function:解压备份文件
src_dir="/data/"
bak_dir="/data.bak/"
while:
do
#现获取所有的目录
cd$bak_dir&&tgzs=`ls*.tgz`
fortgzin$tgzs:
do
tarxf$tgz-Csrc_dir#将压缩包解压到src_dir目录下
rm-f$tgz#删除压缩包
done
sleep5#每5s钟检查一次
done
如上两个脚本差不多,只不过压缩和解压的操作对调了一下,我临时写的,没有测试过,仅供参考,希望对你有帮助
㈤ linux系统上怎样备份oracle数据库
步骤以下:1、编写备份数据库的shell
1、创建保存shell文件的文件夹,2、文件内容为:#!/bin/sh
PATH=$PATH:$HOME/bin
export
PATH
ORACLE_BASE=/u01/app/oracle
export
ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/proct/10.2.0/db_1
export
ORACLE_HOME
ORACLE_SID=HRDB
export
ORACLE_SID
PATH=/usr/sbin:$PATH
PATH=$ORACLE_HOME/bin:$PATH
export
PATH
exp
fact/fact
file=/backup/fact`date
+%y%m%d`.dmp
log=/backup/factlog`date
+%y%m%d`.log
shell文件编写终了1、运行以上的shell文件看是不是能生成备份的.dmp文件,如果能则表示shell文件编写成功
2、然后在此shell文件的所在终端输入命令,将此文件授权让root用户可以履行:
3、命令为:chmod
+x
backup.sh
4、然后到root终端编写定时备份的语句5、语句为:crontab
–e
6、输入i
7、输入10
17
,,,/home/backupscript/backup.sh
8、按下esc建,输入:wq
退出并保存便可。
㈥ linux系统中,写一个shell对指定目录下的文件大于特定值时自动进行备份.加急!
用perl实现较容易
配置文件: /xxx/backup.conf
A 200
B 100
C 50
脚本: /xxx/backup.pl
#!/usr/bin/perl
use strict;
use File::Basename;
# 配置文件名
my $config_file = "/xxx/backup.conf";
# 源目录
my $src_dir = "/tmp";
#备份目录
my $backup_dir = "/xxx/backup";
#当前日期
my $today = `date +%Y%m%d`;
$today =~ s/\n//;
# 读取配置文件
my %conf;
open CONFIG, "<", $config_file;
while(<CONFIG>) {
my($fname, $fsize) = split;
$conf{$fname} = $fsize * 1024 * 1024;
}
close(CONFIG);
# 扫描源目录,附合条件则进行备份
my @files = <$src_dir/*>;
foreach my $file (@files) {
my $file_basename = basename($file);
if ( -f $file && $conf{$file_basename}) {
if( -s $file > $conf{$file_basename} ) {
system "cp ${file} ${backup_dir}/${file_basename}.${today}";
if($?) {
#遇到错误就退出
die " ${file} to ${backup_dir}/${file_basename}.${today} failed!\n";
}
unlink ${file};
}
}
}
㈦ linux文件备份shell脚本
每次备份满25个后再删除:你每次备份是不同的文件名吗?
如果计算个数:
num=${ls 文件名 |wc -l } //就可以计算
if [$num -gt 25] //加条件
then
find $back -name *_$date_before -exec rm -rf {} \;
eles
...
fi
㈧ 如何利用shell脚本备份网站数据到远程linux主机上
第一步: 设置免密码登录 请参考 如何ssh免密码登录linux服务器
第二步:输入以下代码后(注意最后一行的199.101.117.xx改成你自己的那个服务器地址) 保存退出
[root@niko ~]# vi backup.sh
#!/bin/bash backdir=/backup month=`date +%m` day=`date +%d` year=`date +%Y` dirname=$year-$month-$day mkdir -p $backdir/$dirname mkdir -p $backdir/$dirname/conf mkdir -p $backdir/$dirname/web mkdir -p $backdir/$dirname/db gzupload=upload.tgz cp /etc/httpd/conf/httpd.conf $backdir/$dirname/conf/httpd.conf cd /var/www/html/ tar -zcvf $backdir/$dirname/web/$gzupload ./ scp -r /backup/$dirname [email protected]:/backup
第三步 crontab -e 设置每日定时
[root@niko ~]# crontab -e
第四步 设置每日的10:28分运行backup.sh脚本,注意脚本名最好写绝对路径
28 10 * * * /root/backup.sh
第五步 设置脚本运行权限
[root@niko ~]#chmod +x /root/backup.sh
第六步 在另一台也就是要存放备份的服务器上新建backup这个文件夹
[root@testvpn backup]#mkdir /backup
㈨ linux 的shell script备份文件,怎没写。
BACKUP="/tmp/$bakup.tgz" #这里不需要$
题目不是说要备份到/var/tmp/backup里面吗?
我写个吧:
#!/bin/sh
tar czvf /var/tmp/backup.tar.gz /tmp/*
说明:
tmp目录下面所有文件 /tmp/* (通配符*)
打包备份文件 /var/tmp/backup.tar.gz
选项解释:
-c 创建新的档案文件
-z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩
-v 详细报告tar处理的文件信息。如需要静默执行,可以不加这个选项。
-f 使用档案文件或设备,这个选项通常是必选的。
㈩ linux shell 循环执行 备份文件
for db in (shop shop_dev caiwu21 zkqe bugfree zentao); do
$DB=$db
/usr/local/mysql/bin/mysqlmp -u$USER -p$PW --lock-all-tables $DB > /bak/$DB1$DATE.sql
done