最近要给一些客户做 Joomla 站点的演示,所以要求在服务器上建一批 Joomla 站点。手工建的话费时又费力,一不留神还容易出错。所以在 Ronnie 的帮助下完成了一个脚本来批量建立这些站点。
具体要求:建立 50 个 Joomla 站点,名称从 1001 到 1050 为止,目录为 /www/vhost/1001/cms,/www/vhost/1002/cms,以此类推至 /www/vhost/1050/cms。
首先建立并设置好第一个 Joomla 演示站点 1001,目录为 /www/vhost/1001/cms,并将其数据导出为 sql 文件。
导出数据库的命令如下:
- mysqldump -u user -ppassword joomla_1001 > /home/jayson/joomla_1001.sql
然后建立如下脚本:
- for ((i=1002;i<=1050;i++));
- do
- mysqladmin -u user -ppassword create joomla_$i;
- mysql -u user -ppassword joomla_$i < /home/jayson/joomla_1001.sql;
- cp -rfp /www/vhost/1001/cms /www/vhost/$i/;
- sed -i "s/1001/${i}/g" /www/vhost/${i}/cms/configuration.php
- done
将其存为 joomla_site_batch_clone.sh。
循环体中共四行语句。第一行是建立 MySQL 数据库;第二行是将数据导入数据库中;第三行是将复制文件;第四行是将各 Joomla 站点的配置文件 configuration.php 进行相应的更改。
最后执行此脚本文件。
附:为保险起见,可以更改脚本文件中的循环条件,让其只循环一次或几次,以查证脚本文件是否运行正常。如无误再更改循环条件复制剩余的站点。
- /home/jayson/joomla_site_batch_clone.sh
稍等一会儿,就可以看到 50 个站点很快就都建立好了,这样可以提高很大的效率,让系统管理员从重复的手工劳动中解放出来。