如何用php写一个mysql自动备份的功能?(兩個代碼參考,未測試。)
[
2006/12/01 09:37 | by 小施 ]
2006/12/01 09:37 | by 小施 ]
MySQL数据自动备份并且ftp的shell文件(未测试哦)
[
2006/12/01 09:33 | by 小施 ]
2006/12/01 09:33 | by 小施 ]
MySQLbackup.sh 是备份整个MySQL数据库的数据
DBbackup.sh 是备份单个数据库的数据
#!/bin/bash
############### MySQL Backup & FTP ################
#Power By SBear 2004-01-20 2:10
#E-mail:sbear_ji@126.com
#http://www.1842.net
#http://www.CnLinux.net
#1. mkdir /home/backup
#2. chmod 700 MySQLbackup.sh
#3. vi /etc/crontab , 30 03 * * * root /home/backup/MySQLbackup.sh
#everyday 03:30 the MySQLbackup.sh will work
#System Setup
host=192.168.0.3 #ftp host
UserName=ftp #ftp user name
Passwd=ftp #fto user password
backup_path=/home/backup #set saved backup path
file=mysql-$(date +%Y%m%d).tar.gz
backupCWD=/usr/local/mysql/var #set backup file,the mysql database
#stop mysql database server
/usr/bin/killall mysqld
#/etc/rc.c/init.d/mysqld stop
sleep 5s #stop 5 second
#file tar
tar -czf $backup_path/$file $backupCWD
sleep 10s
#start mysql database server
/usr/local/mysql/bin/mysqld_safe --user=mysql & #set your mysqld path
#/etc/rc.d/init.d/mysqld start
cd $backup_path
sleep 1s
#file ftp
ftp -i -n <<!
open $host
user $UserName $Passwd
put $file
bye
!
sleep 10s
rm -rf $backup_path/$file
############### MySQL Backup & FTP ################
#Power By SBear 2004-01-20 2:10
#E-mail:sbear_ji@126.com
#http://www.1842.net
#http://www.CnLinux.net
#1. mkdir /home/backup
#2. chmod 700 MySQLbackup.sh
#3. vi /etc/crontab , 30 03 * * * root /home/backup/MySQLbackup.sh
#everyday 03:30 the MySQLbackup.sh will work
#System Setup
host=192.168.0.3 #ftp host
UserName=ftp #ftp user name
Passwd=ftp #fto user password
backup_path=/home/backup #set saved backup path
file=mysql-$(date +%Y%m%d).tar.gz
backupCWD=/usr/local/mysql/var #set backup file,the mysql database
#stop mysql database server
/usr/bin/killall mysqld
#/etc/rc.c/init.d/mysqld stop
sleep 5s #stop 5 second
#file tar
tar -czf $backup_path/$file $backupCWD
sleep 10s
#start mysql database server
/usr/local/mysql/bin/mysqld_safe --user=mysql & #set your mysqld path
#/etc/rc.d/init.d/mysqld start
cd $backup_path
sleep 1s
#file ftp
ftp -i -n <<!
open $host
user $UserName $Passwd
put $file
bye
!
sleep 10s
rm -rf $backup_path/$file
DBbackup.sh 是备份单个数据库的数据
在win2003下MySQL数据库每天自动备份
[
2006/12/01 09:28 | by 小施 ]
2006/12/01 09:28 | by 小施 ]
终于让服务器每天早上备份一次 MySQL 数据库并自动打包,同时删除 7 天前的备份文件. 分享如下.
1. 环境: windows server 2003 + PHP5 + MySQL 4.0.26 .
2. 假设 PHP 安装目录为 D:/php ,MySQL 安装目录为 D:/mysql.
3. 在 D:/php 下建立目录 WinRAR, 把你 winrar 安装目录下的 WinRAR.exe 和 RARReg.KEY 复制到 D:/php/WinRAR .
4. D:/php 下建立文件 mysql_backup.php:
<?php
/*/////////////////////////
#FileName: mysql_backup.php
#Author: Austin
#Website: http://shi.i0595.net
////////////////////////*/
//保存目錄,路徑要用反斜槓。
$store_folder = 'd:dbbackup';
//用戶名和密碼
//該帳號須有操作[所有]的數據庫及FILE的權限
//否則有些數據庫不能備份
$db_username = "这里输入数据库帐号";
$db_password = "这里输入密码";
$time=time();
$nowdir = "$store_folder".date("Ymd",$time)."";
if(file_exists("$nowdir.rar")) die("File exists.rn");
@mkdir($nowdir);
mysql_connect("localhost","$db_username","$db_password");
$query=mysql_list_dbs();
$command = '';
while($result=mysql_fetch_array($query)){
$command .= 'D:Mysqlbinmysqldump --opt '."$result[Database] -u{$db_username} ".($db_password?"-p{$db_password}":"")." > $nowdir$result[Database].sql rn";
$command .= "echo 已經導出數據庫: `$result[Database]`... rn";
}
$command .= "echo 開始壓縮...rn";
$command .= dirname(__FILE__)."WinRARRAR.exe a -ep1 -r -o+ -m5 -df "$nowdir.rar" "$nowdir" rn";
$command .= "echo 搞定 ^_^rn";
$command .= "del mysqldumping_temp.batrn";
$fp = fopen('mysqldumping_temp.bat','w');
fwrite($fp,$command);
fclose($fp);
//刪除 7 天前的文件
@unlink("$store_folder".date("Ymd",$time-86400*7).".rar")
?>
5. D:/php 下建立文件 mysql_backup.bat:
@echo off
cls
title 備份腳本
color 0b
echo 自動備份腳本開始,請不要手動關閉本窗口。本窗口將在備份完成後自動關閉。
D:\Php\PHP.exe mysql_backup.php
if exist mysqldumping_temp.bat call mysqldumping_temp.bat
6. 双击该 bat 文件运行,如果能备份了,OK,下一步添加任务计划.
7. 把 D:/php/mysql_backup 添加到任务计划,时间选每天. 根据服务器的监测结果,每天早上 5-8 时为流量低峰期. 由于 5-7 时有些数据库的清理工作,可以把时间定在了早上 8 点整.
1. 环境: windows server 2003 + PHP5 + MySQL 4.0.26 .
2. 假设 PHP 安装目录为 D:/php ,MySQL 安装目录为 D:/mysql.
3. 在 D:/php 下建立目录 WinRAR, 把你 winrar 安装目录下的 WinRAR.exe 和 RARReg.KEY 复制到 D:/php/WinRAR .
4. D:/php 下建立文件 mysql_backup.php:
<?php
/*/////////////////////////
#FileName: mysql_backup.php
#Author: Austin
#Website: http://shi.i0595.net
////////////////////////*/
//保存目錄,路徑要用反斜槓。
$store_folder = 'd:dbbackup';
//用戶名和密碼
//該帳號須有操作[所有]的數據庫及FILE的權限
//否則有些數據庫不能備份
$db_username = "这里输入数据库帐号";
$db_password = "这里输入密码";
$time=time();
$nowdir = "$store_folder".date("Ymd",$time)."";
if(file_exists("$nowdir.rar")) die("File exists.rn");
@mkdir($nowdir);
mysql_connect("localhost","$db_username","$db_password");
$query=mysql_list_dbs();
$command = '';
while($result=mysql_fetch_array($query)){
$command .= 'D:Mysqlbinmysqldump --opt '."$result[Database] -u{$db_username} ".($db_password?"-p{$db_password}":"")." > $nowdir$result[Database].sql rn";
$command .= "echo 已經導出數據庫: `$result[Database]`... rn";
}
$command .= "echo 開始壓縮...rn";
$command .= dirname(__FILE__)."WinRARRAR.exe a -ep1 -r -o+ -m5 -df "$nowdir.rar" "$nowdir" rn";
$command .= "echo 搞定 ^_^rn";
$command .= "del mysqldumping_temp.batrn";
$fp = fopen('mysqldumping_temp.bat','w');
fwrite($fp,$command);
fclose($fp);
//刪除 7 天前的文件
@unlink("$store_folder".date("Ymd",$time-86400*7).".rar")
?>
5. D:/php 下建立文件 mysql_backup.bat:
@echo off
cls
title 備份腳本
color 0b
echo 自動備份腳本開始,請不要手動關閉本窗口。本窗口將在備份完成後自動關閉。
D:\Php\PHP.exe mysql_backup.php
if exist mysqldumping_temp.bat call mysqldumping_temp.bat
6. 双击该 bat 文件运行,如果能备份了,OK,下一步添加任务计划.
7. 把 D:/php/mysql_backup 添加到任务计划,时间选每天. 根据服务器的监测结果,每天早上 5-8 时为流量低峰期. 由于 5-7 时有些数据库的清理工作,可以把时间定在了早上 8 点整.
RedHat(centOS) 下SAMBA的简单配置
[
2006/11/29 17:38 | by 小施 ]
2006/11/29 17:38 | by 小施 ]
1.检测安装Samba服务
(1).检查Samba服务包是否已安装:
(2).如未安装,则插入第一张安装盘,执行:
(3).进入目录后安装Samba文件:
注意:运Samba至少需要三个文件,分别为:
samba-common-2.2.7a-7.9.0.i386.rpm //服务器和客户端均需要的文件
samba-2.2.7a-7.9.0.i386.rpm //服务器端文件
samba-client-2.27a-7.9.0.i386.rpm //客户端文件
安装上述3个文件.
(4).安装完成后弹出光驱:
2.设置密码文件.
(1).此设置的作用是将Linux中的系统用户(/etc/passwd)导入到samba密码文件中
(/etc/samba/smbpasswd)
(2).接下来给smbpasswd等文件及文件夹设置访问权限.
查看一下:
(3).如果您想手动添加一个用户,则首先要保证Linux中该用户存在,步骤:
3. 配置/etc/samba/smb.conf文件.
虽然文件内容众多,但需要改动的不多,一般为按需所配:
(1).修改[global](全局配置参数)
上述四条为比较重要的.其他配置大家可按需按情况修改.
(2).创建共享文件夹.
由于用户使用权限有多种(读,写,执行),而又访问者又有多种(用户,组),所以创建共享资源的访问方式有多种,下面暂举几例:
例一: 建立资源,使登陆到该服务器的用户均有权使用该空间(包括读,写)
<1>.编辑smb.conf文件
<2>. 建立共享文件夹
<3>. 由于任何人都能使用,所以得给该文件夹设置访问权限.
<4>. 如果想在该文件夹中放置预共享文件,而又不想花
时间从别的文件夹中cp过来,此时可以使用指针.
比如想共享/usr/share/doc中的文件,则可以:
进入/var/samba/resource ls一下,是不是出现指针文件了!
例二: 建立一资源,只能让用户austin全权访问.
<1>. 编辑smb.conf文件
<2>. 建立共享文件夹
<3>. 由于只能让austin使用,所以得给该文件夹设置访问权限.
此时该文件夹属于austin用户,并且只能由austin用户访问.
例三: 建立一资源,只能让root,zhang和wang访问.
<1>. 编辑smb.conf文件
<2>. 建立共享文件夹
<3>. 给该文件夹设置访问权限.
此时该文件夹只能root,zhang,wang访问了.
例四: 建立一资源,让指定的组group2中的用户访问.
<1>. 编辑smb.conf文件
<2>. 建立共享文件夹
<3>. 给该文件夹设置访问权限.
此时该文件夹只能由group2中的用户访问了.
(3). 以上为创建共享文件夹,下面为创建共享打印机.
<1>. 配置打印机的方面有很多,比如使用redhat-config-printer命令即可调出配置
菜单.
<2>. 当然smb.conf中也要设置啊:
其他配置不变或按情配置
接下来再添加print驱动设置:
接着创建drivers文件夹:
最后给用户准备打印机驱动,并启动打印共享:
4. 测试并启动Samba服务器.
5. 访问Samba
(1). 从Windows端访问.
使用"网络邻居"访问即可.
(2). 访问时可以使用IP地址,也可以使用主机名访问.
访问时,使用smbclient命令,使用方法如下:
smbclient -L IP/主机名 [-U 用户名] //浏览Linux/Windows资源列表
smbclient -L 192.168.80.35 //浏览Linux
smbclient -L 192.168.80.45 -U administrator //浏览Windows
smbclient //IP/共享文件夹名 -U 系统用户名 //详细查看某一共享资源的
内容
smbclient //192.168.80.45/123 -U root/administrator //以root或administrator身份
登陆45主机访问共享文件夹123
1>1>1>1>1>2>2>2>2>2>3>3>3>3>4>
(1).检查Samba服务包是否已安装:
rpm -qa | grep samba
(2).如未安装,则插入第一张安装盘,执行:
mount /mnt/cdrom
cd /cdrom/Redhat/RPMS
cd /cdrom/Redhat/RPMS
(3).进入目录后安装Samba文件:
注意:运Samba至少需要三个文件,分别为:
samba-common-2.2.7a-7.9.0.i386.rpm //服务器和客户端均需要的文件
samba-2.2.7a-7.9.0.i386.rpm //服务器端文件
samba-client-2.27a-7.9.0.i386.rpm //客户端文件
安装上述3个文件.
rpm -ivh samba-common-2.2.7a-7.9.0.i386.rpm //另外两个省略不写
(4).安装完成后弹出光驱:
cd;eject
2.设置密码文件.
(1).此设置的作用是将Linux中的系统用户(/etc/passwd)导入到samba密码文件中
(/etc/samba/smbpasswd)
cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
(2).接下来给smbpasswd等文件及文件夹设置访问权限.
chown root:root /etc/samba/smbpasswd
chmod 600 /etc/samba/smbpasswd
chmod 600 /etc/samba
chmod 600 /etc/samba/smbpasswd
chmod 600 /etc/samba
查看一下:
ll -d etc/samba
(3).如果您想手动添加一个用户,则首先要保证Linux中该用户存在,步骤:
useradd austin
passwd austin
smbpasswd -a austin //此步为添加Samba用户
passwd austin
smbpasswd -a austin //此步为添加Samba用户
3. 配置/etc/samba/smb.conf文件.
虽然文件内容众多,但需要改动的不多,一般为按需所配:
(1).修改[global](全局配置参数)
workgroup = workgroup //工作组名称
server string = samba server %v at %h //设置服务器名称.%v为版本号,%h为运行
smb服务的主机名
host allow = 192.168.80. 192.168.70. //允许访问服务器的主机
client code page = 939 //支持简体中文共享名
server string = samba server %v at %h //设置服务器名称.%v为版本号,%h为运行
smb服务的主机名
host allow = 192.168.80. 192.168.70. //允许访问服务器的主机
client code page = 939 //支持简体中文共享名
上述四条为比较重要的.其他配置大家可按需按情况修改.
(2).创建共享文件夹.
由于用户使用权限有多种(读,写,执行),而又访问者又有多种(用户,组),所以创建共享资源的访问方式有多种,下面暂举几例:
例一: 建立资源,使登陆到该服务器的用户均有权使用该空间(包括读,写)
<1>.编辑smb.conf文件
vi smb.conf
[resource]
comment = local resource
path = /var/samba/resource
read only = no
public = yes //允许guest用户访问
comment = local resource
path = /var/samba/resource
read only = no
public = yes //允许guest用户访问
<2>. 建立共享文件夹
mkdir -p /var/samba/resource
<3>. 由于任何人都能使用,所以得给该文件夹设置访问权限.
chmod 707 /var/samba/resource
<4>. 如果想在该文件夹中放置预共享文件,而又不想花
时间从别的文件夹中cp过来,此时可以使用指针.
比如想共享/usr/share/doc中的文件,则可以:
ln -s /usr/share/doc /var/samba/resource/doc
进入/var/samba/resource ls一下,是不是出现指针文件了!
例二: 建立一资源,只能让用户austin全权访问.
<1>. 编辑smb.conf文件
vi smb.conf
[austin]
comment = austin
path = /var/samba/austin
vaild users = smz //只允许austin访问
public = no
writable = yes
comment = austin
path = /var/samba/austin
vaild users = smz //只允许austin访问
public = no
writable = yes
<2>. 建立共享文件夹
mkdir -p /var/samba/austin
<3>. 由于只能让austin使用,所以得给该文件夹设置访问权限.
chown austin:austin /var/samba/austin
chmod 700 /var/samba/austin
此时该文件夹属于austin用户,并且只能由austin用户访问.
例三: 建立一资源,只能让root,zhang和wang访问.
<1>. 编辑smb.conf文件
vi smb.conf
[zhang wang]
comment = zhang wang
path = /var/samba/zhangwang
vaild users = zhang wang
public = no
writable = yes
creat mask = 0707
comment = zhang wang
path = /var/samba/zhangwang
vaild users = zhang wang
public = no
writable = yes
creat mask = 0707
<2>. 建立共享文件夹
mkdir -p /var/samba/zhangwang
<3>. 给该文件夹设置访问权限.
chmod 707 /var/samba/zhangwang
此时该文件夹只能root,zhang,wang访问了.
例四: 建立一资源,让指定的组group2中的用户访问.
<1>. 编辑smb.conf文件
vi smb.conf
[group]
comment = group2
path = /var/samba/group2
public = yes
writable = yes
write list = @group2 //设置读写访问用户列表
comment = group2
path = /var/samba/group2
public = yes
writable = yes
write list = @group2 //设置读写访问用户列表
<2>. 建立共享文件夹
mkdir -p /var/samba/group2
<3>. 给该文件夹设置访问权限.
chown group2.group2 /var/samba/group2
chmod 770 /var/samba/group2
此时该文件夹只能由group2中的用户访问了.
(3). 以上为创建共享文件夹,下面为创建共享打印机.
<1>. 配置打印机的方面有很多,比如使用redhat-config-printer命令即可调出配置
菜单.
<2>. 当然smb.conf中也要设置啊:
[global]
printcap name = /etc/printcap //配置文件路径
[printers]
writable = no
guest ok = yes //guest可用
browseable = no //不可浏览
ptrintable = yes
path = /var/spool/samba //队列位置
printer admin = root //打印机管理员
printcap name = /etc/printcap //配置文件路径
[printers]
writable = no
guest ok = yes //guest可用
browseable = no //不可浏览
ptrintable = yes
path = /var/spool/samba //队列位置
printer admin = root //打印机管理员
其他配置不变或按情配置
接下来再添加print驱动设置:
[print$]
comment = printer drivers
path = /etc/samba/drivers
browseable = yes
guest ok = no
read only = yes
write list = root
comment = printer drivers
path = /etc/samba/drivers
browseable = yes
guest ok = no
read only = yes
write list = root
接着创建drivers文件夹:
mkdir -p /etc/samba/drivers
最后给用户准备打印机驱动,并启动打印共享:
cupsaddsmb -a -U root //-a为共享所有打印机 -U为以root身份执行
cupsaddsmb
命令4. 测试并启动Samba服务器.
testparm //测试
service smb start
pstree | grep mbd //查看是否启动
5. 访问Samba
(1). 从Windows端访问.
使用"网络邻居"访问即可.
(2). 访问时可以使用IP地址,也可以使用主机名访问.
vi /etc/samba/lmhosts
192.168.80.35 smz_f91
//创建主机名与IP的映射访问时,使用smbclient命令,使用方法如下:
smbclient -L IP/主机名 [-U 用户名] //浏览Linux/Windows资源列表
smbclient -L 192.168.80.35 //浏览Linux
smbclient -L 192.168.80.45 -U administrator //浏览Windows
smbclient //IP/共享文件夹名 -U 系统用户名 //详细查看某一共享资源的
内容
smbclient //192.168.80.45/123 -U root/administrator //以root或administrator身份
登陆45主机访问共享文件夹123
1>1>1>1>1>2>2>2>2>2>3>3>3>3>4>
MySQL 的一些东西.
[
2006/11/29 17:26 | by 小施 ]
2006/11/29 17:26 | by 小施 ]
1.设置字符集:
2.mysql导出数据方法:
到MySQL的bin目录下,用mysqldump 命令,其中bbbbb是数据库 country_area 是表,把数据导到countryarea.txt里
3.解决LINUX下数据大小写问题.
在my.cnf的[mysqld]里面添加
4.设置MYSQL的字符集
在my.cnf的[mysqld]里面添加
5.兼容老版本的程序.
因为MYSQL4.1以前的版本,密码是采用32BIT加密的,4.1之后是采用64BIT.所以有时候会出问题.
那么我们为了兼容老版本.需要在[MYSQLD]里面添加一个
set names 'big5';
2.mysql导出数据方法:
H:\MySQL Server 5.0\bin>mysqldump -u root --opt bbbbb country_area >countryarea.txt
到MySQL的bin目录下,用mysqldump 命令,其中bbbbb是数据库 country_area 是表,把数据导到countryarea.txt里
3.解决LINUX下数据大小写问题.
在my.cnf的[mysqld]里面添加
lower_case_table_names=1
4.设置MYSQL的字符集
在my.cnf的[mysqld]里面添加
default-character-set=big5
5.兼容老版本的程序.
因为MYSQL4.1以前的版本,密码是采用32BIT加密的,4.1之后是采用64BIT.所以有时候会出问题.
那么我们为了兼容老版本.需要在[MYSQLD]里面添加一个
old_passwords=1






