服务器服务迁移(通用)

删除日志

删除日志文件

1
2
3
4
find . -type f -name "*log.txt" -exec rm -f {} \;
find . -type f -name "*.gz" -exec rm -f {} \;
find . -type f -name "*.tmp" -exec rm -f {} \;
find . -type f -name "*log" -exec rm -f {} \;

压缩与解压

压缩

文件夹和文件命令一样

1
tar -czvf wwwroot.tar.gz wwwroot

压缩基本可以节约一半多点的空间

解压

1
tar -xzvf wwwroot.tar.gz

下载文件

1
scp root@123.45.67.89:/data/wwwroot.tar.gz /data/

文件复制

scp 的核心功能之一就是支持双向传输,既可以上传本地文件到远程服务器,也可以将远程服务器上的文件安全地下载下来。

基本下载命令语法

从远程服务器下载文件到本地的基本命令格式如下:

1
scp [选项] 用户名@远程服务器IP:远程文件路径 本地保存路径

下载文件

将远程服务器上的 file.txt 下载到本地的 /local/path/ 目录下:

1
scp root@123.45.67.89:/remote/path/file.txt /local/path/

下载目录

如果需要下载远程的整个文件夹(包含里面的子文件和子目录),需要加上 -r 参数:

1
scp -r root@123.45.67.89:/remote/folder/ /local/path/

指定端口

如果远程服务器的 SSH 端口不是默认的 22(例如改为了 2222),需要使用大写的 -P 参数来指定端口:

1
scp -P 2222 root@123.45.67.89:/remote/path/file.txt /local/path/

使用密钥文件免密下载

如果你配置了 SSH 密钥认证,可以通过 -i 参数指定本地的私钥文件路径,实现免密码下载:

1
scp -i ~/.ssh/id_rsa root@123.45.67.89:/remote/path/file.txt /local/path/

服务迁移

迁移Jar

1
2
3
cd /data/wwwjarapi

cp -r schoolcloudapi schoolcloudapi_bak

进入备份目录

1
cd schoolcloudapi_bak

压缩文件夹

1
2
cd ../
tar -czvf schoolcloudapi_bak.tar.gz schoolcloudapi_bak

目标服务器

1
mkdir -p /data/wwwjarapi

解压

1
tar -xzvf schoolcloudapi_bak.tar.gz -C /data/wwwjarapi

解压

1
2
cd /data/wwwjarapi
mv schoolcloudapi_bak schoolcloudapi

修改权限

1
find . -type f -name "*.jar" -exec chmod +x {} \;

迁移服务

1
cd /etc/init.d

压缩需要的文件

1
tar -czvf mysh.tar.gz 83[0-9][0-9].sh

解压

1
2
3
cd /etc/init.d
tar -xzvf mysh.tar.gz
rm -rf mysh.tar.gz

注册服务

首先,添加为系统服务

1
chkconfig --add 8301.sh

开机自启动

1
chkconfig 8301.sh on

进入目录

1
cd /etc/init.d

批量添加

1
2
3
for file in 83[0-9][0-9].sh; do
chkconfig --add "$file"
done

批量开机自启

1
2
3
for file in 83[0-9][0-9].sh; do
chkconfig "$file" on
done

查看服务

1
chkconfig --list

替换配置

文件字符替换

1
sed -i 's/Hello/Hi/g' example.txt

查找文件

1
find . -type f -name "application.properties"

批量替换

1
2
3
4
5
6
7
8
9
10
11
12
13
# 数据库
find . -type f -name "application.properties" -exec sed -i 's/172.24.197.12:54321/172.26.69.15:54321/g' {} \;
find . -type f -name "application.properties" -exec sed -i 's/current.datasource=mysql/current.datasource=kingbase/g' {} \;
find . -type f -name "application.properties" -exec sed -i 's/kingbase.username=root/kingbase.username=system/g' {} \;


# Redis
find . -type f -name "application.properties" -exec sed -i 's/cache.xhkjedu.com/172.26.69.11/g' {} \;
find . -type f -name "application.properties" -exec sed -i 's/redis.password=xhkjedu_school#redis/redis.password=xhkjeduQAZwsx/g' {} \;
# MQ
find . -type f -name "application.properties" -exec sed -i 's/172.24.197.10/172.26.69.11/g' {} \;
# 文件
find . -type f -name "application.properties" -exec sed -i 's/schoolfile.xhkjedu.com/schoolfile.zmeduyun.cn/g' {} \;

查找

1
grep -r "豫ICP备18016292号-1" .

替换

1
find . -type f -name "*.html" -exec sed -i 's/豫ICP备12316292号-1/豫ICP备18016292号/g' {} \;