mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
551 lines
20 KiB
Markdown
551 lines
20 KiB
Markdown
|
[#]: collector: (lujun9972)
|
||
|
[#]: translator: ( )
|
||
|
[#]: reviewer: ( )
|
||
|
[#]: publisher: ( )
|
||
|
[#]: url: ( )
|
||
|
[#]: subject: (How to Backup Configuration Files on a Remote System Using the Bash Script)
|
||
|
[#]: via: (https://www.2daygeek.com/linux-bash-script-backup-configuration-files-remote-linux-system-server/)
|
||
|
[#]: author: (Magesh Maruthamuthu https://www.2daygeek.com/author/magesh/)
|
||
|
|
||
|
How to Backup Configuration Files on a Remote System Using the Bash Script
|
||
|
======
|
||
|
|
||
|
It is a good practice to backup configuration files before performing any activity on a Linux system.
|
||
|
|
||
|
You can use this script if you are restarting the server after several days.
|
||
|
|
||
|
If you are really concerned about the backup of your configuration files, it is advisable to use this script at least once a month.
|
||
|
|
||
|
If something goes wrong, you can restore the system to normal by comparing configuration files based on the error message.
|
||
|
|
||
|
Three **[bash scripts][1]** are included in this article, and each **[shell script][2]** is used for specific purposes.
|
||
|
|
||
|
You can choose one based on your requirements.
|
||
|
|
||
|
Everything in Linux is a file. If you make some wrong changes in the configuration file, it will cause the associated service to crash.
|
||
|
|
||
|
So it is a good idea to take a backup of configuration files, and you do not have to worry about disk usage as this not consume much space.
|
||
|
|
||
|
### What does this script do?
|
||
|
|
||
|
This script backs up specific configuration files, moves them to another server, and finally deletes the backup on the remote machine.
|
||
|
|
||
|
This script has six parts, and the details are below.
|
||
|
|
||
|
* **Part-1:** Backup a General Configuration Files
|
||
|
* **Part-2:** Backup a wwn/wwpn number if the server is physical.
|
||
|
* **Part-3:** Backup an oracle related files if the system has an oracle user account.
|
||
|
* **Part-4:** Create a tar archive of backup configuration files.
|
||
|
* **Part-5:** Copy the tar archive to other server.
|
||
|
* **Part-6:** Remove Backup of configuration files on the remote system.
|
||
|
|
||
|
|
||
|
|
||
|
**System details are as follows:**
|
||
|
|
||
|
* **Server-A:** Local System/ JUMP System (local.2daygeek.com)
|
||
|
* **Server-B:** Remote System-1 (CentOS6.2daygeek.com)
|
||
|
* **Server-C:** Remote System-2 (CentOS7.2daygeek.com)
|
||
|
|
||
|
|
||
|
|
||
|
### 1) Bash Script to Backup Configuration files on Remote Server
|
||
|
|
||
|
Two scripts are included in this example, which allow you to back up important configurations files from one server to another (that is, from a remote server to a local server).
|
||
|
|
||
|
For example, if you want to back up important configuration files from **“Server-B”** to **“Server-A”**. Use the following script.
|
||
|
|
||
|
This is a real bash script that takes backup of configuration files on the remote server.
|
||
|
|
||
|
```
|
||
|
# vi /home/daygeek/shell-script/config-file.sh
|
||
|
|
||
|
#!/bin/bash
|
||
|
mkdir /tmp/conf-bk-$(date +%Y%m%d)
|
||
|
cd /tmp/conf-bk-$(date +%Y%m%d)
|
||
|
|
||
|
For General Configuration Files
|
||
|
hostname > hostname.out
|
||
|
uname -a > uname.out
|
||
|
uptime > uptime.out
|
||
|
cat /etc/hosts > hosts.out
|
||
|
/bin/df -h>df-h.out
|
||
|
pvs > pvs.out
|
||
|
vgs > vgs.out
|
||
|
lvs > lvs.out
|
||
|
/bin/ls -ltr /dev/mapper>mapper.out
|
||
|
fdisk -l > fdisk.out
|
||
|
cat /etc/fstab > fstab.out
|
||
|
cat /etc/exports > exports.out
|
||
|
cat /etc/crontab > crontab.out
|
||
|
cat /etc/passwd > passwd.out
|
||
|
ip link show > ip.out
|
||
|
/bin/netstat -in>netstat-in.out
|
||
|
/bin/netstat -rn>netstat-rn.out
|
||
|
/sbin/ifconfig -a>ifconfig-a.out
|
||
|
cat /etc/sysctl.conf > sysctl.out
|
||
|
sleep 10s
|
||
|
|
||
|
#For Physical Server
|
||
|
vserver=$(lscpu | grep vendor | wc -l)
|
||
|
if [ $vserver -gt 0 ]
|
||
|
then
|
||
|
echo "$(hostname) is a VM"
|
||
|
else
|
||
|
systool -c fc_host -v | egrep "(Class Device path | port_name |port_state)" > systool.out
|
||
|
fi
|
||
|
sleep 10s
|
||
|
|
||
|
#For Oracle DB Servers
|
||
|
if id oracle >/dev/null 2>&1; then
|
||
|
/usr/sbin/oracleasm listdisks>asm.out
|
||
|
/sbin/multipath -ll > mpath.out
|
||
|
/bin/ps -ef|grep pmon > pmon.out
|
||
|
else
|
||
|
echo "oracle user does not exist on server"
|
||
|
fi
|
||
|
sleep 10s
|
||
|
|
||
|
#Create a tar archive
|
||
|
tar -cvf /tmp/$(hostname)-date +%Y%m%d.tar /tmp/conf-bk-$(date +%Y%m%d)
|
||
|
sleep 10s
|
||
|
|
||
|
#Copy a tar archive to other server
|
||
|
sshpass -p 'password' scp /tmp/$(hostname)-date +%Y%m%d.tar Server-A:/home/daygeek/backup/
|
||
|
|
||
|
#Remove the backup config folder
|
||
|
cd ..
|
||
|
rm -Rf conf-bk-$(date +%Y%m%d)
|
||
|
rm $(hostname)-date +%Y%m%d.tar
|
||
|
rm config-file.sh
|
||
|
exit
|
||
|
```
|
||
|
|
||
|
This is a sub-script that pushes the above script to the target server.
|
||
|
|
||
|
```
|
||
|
# vi /home/daygeek/shell-script/conf-remote.sh
|
||
|
|
||
|
#!/bin/bash
|
||
|
echo -e "Enter the Remote Server Name: \c"
|
||
|
read server
|
||
|
scp /home/daygeek/shell-script/config-file.sh $server:/tmp/
|
||
|
ssh [email protected]${server} sh /home/daygeek/shell-script/config-file.sh
|
||
|
sleep 10s
|
||
|
exit
|
||
|
```
|
||
|
|
||
|
Finally run the bash script to achieve this.
|
||
|
|
||
|
```
|
||
|
# sh /home/daygeek/shell-script/conf-remote.sh
|
||
|
|
||
|
Enter the Remote Server Name: CentOS6.2daygeek.com
|
||
|
config-file.sh 100% 1446 647.8KB/s 00:00
|
||
|
CentOS6.2daygeek.com is a VM
|
||
|
oracle user does not exist on server
|
||
|
tar: Removing leading `/' from member names
|
||
|
/tmp/conf-bk-20191024/
|
||
|
/tmp/conf-bk-20191024/pvs.out
|
||
|
/tmp/conf-bk-20191024/vgs.out
|
||
|
/tmp/conf-bk-20191024/ip.out
|
||
|
/tmp/conf-bk-20191024/netstat-in.out
|
||
|
/tmp/conf-bk-20191024/fstab.out
|
||
|
/tmp/conf-bk-20191024/ifconfig-a.out
|
||
|
/tmp/conf-bk-20191024/hostname.out
|
||
|
/tmp/conf-bk-20191024/crontab.out
|
||
|
/tmp/conf-bk-20191024/netstat-rn.out
|
||
|
/tmp/conf-bk-20191024/uptime.out
|
||
|
/tmp/conf-bk-20191024/uname.out
|
||
|
/tmp/conf-bk-20191024/mapper.out
|
||
|
/tmp/conf-bk-20191024/lvs.out
|
||
|
/tmp/conf-bk-20191024/exports.out
|
||
|
/tmp/conf-bk-20191024/df-h.out
|
||
|
/tmp/conf-bk-20191024/sysctl.out
|
||
|
/tmp/conf-bk-20191024/hosts.out
|
||
|
/tmp/conf-bk-20191024/passwd.out
|
||
|
/tmp/conf-bk-20191024/fdisk.out
|
||
|
```
|
||
|
|
||
|
Once you run the above script, use the ls command to check the copied tar archive file.
|
||
|
|
||
|
```
|
||
|
# ls -ltrh /home/daygeek/backup/*.tar
|
||
|
|
||
|
-rw-r--r-- 1 daygeek daygeek 30K Oct 25 11:01 /home/daygeek/backup/CentOS6.2daygeek.com-20191024.tar
|
||
|
```
|
||
|
|
||
|
If it is moved successfully, you can find the contents of it without extracting it using the following tar command.
|
||
|
|
||
|
```
|
||
|
# tar -tvf /home/daygeek/backup/CentOS6.2daygeek.com-20191024.tar
|
||
|
|
||
|
drwxr-xr-x root/root 0 2019-10-25 11:00 tmp/conf-bk-20191024/
|
||
|
-rw-r--r-- root/root 96 2019-10-25 11:00 tmp/conf-bk-20191024/pvs.out
|
||
|
-rw-r--r-- root/root 92 2019-10-25 11:00 tmp/conf-bk-20191024/vgs.out
|
||
|
-rw-r--r-- root/root 413 2019-10-25 11:00 tmp/conf-bk-20191024/ip.out
|
||
|
-rw-r--r-- root/root 361 2019-10-25 11:00 tmp/conf-bk-20191024/netstat-in.out
|
||
|
-rw-r--r-- root/root 785 2019-10-25 11:00 tmp/conf-bk-20191024/fstab.out
|
||
|
-rw-r--r-- root/root 1375 2019-10-25 11:00 tmp/conf-bk-20191024/ifconfig-a.out
|
||
|
-rw-r--r-- root/root 21 2019-10-25 11:00 tmp/conf-bk-20191024/hostname.out
|
||
|
-rw-r--r-- root/root 457 2019-10-25 11:00 tmp/conf-bk-20191024/crontab.out
|
||
|
-rw-r--r-- root/root 337 2019-10-25 11:00 tmp/conf-bk-20191024/netstat-rn.out
|
||
|
-rw-r--r-- root/root 62 2019-10-25 11:00 tmp/conf-bk-20191024/uptime.out
|
||
|
-rw-r--r-- root/root 116 2019-10-25 11:00 tmp/conf-bk-20191024/uname.out
|
||
|
-rw-r--r-- root/root 210 2019-10-25 11:00 tmp/conf-bk-20191024/mapper.out
|
||
|
-rw-r--r-- root/root 276 2019-10-25 11:00 tmp/conf-bk-20191024/lvs.out
|
||
|
-rw-r--r-- root/root 0 2019-10-25 11:00 tmp/conf-bk-20191024/exports.out
|
||
|
-rw-r--r-- root/root 236 2019-10-25 11:00 tmp/conf-bk-20191024/df-h.out
|
||
|
-rw-r--r-- root/root 1057 2019-10-25 11:00 tmp/conf-bk-20191024/sysctl.out
|
||
|
-rw-r--r-- root/root 115 2019-10-25 11:00 tmp/conf-bk-20191024/hosts.out
|
||
|
-rw-r--r-- root/root 2194 2019-10-25 11:00 tmp/conf-bk-20191024/passwd.out
|
||
|
-rw-r--r-- root/root 1089 2019-10-25 11:00 tmp/conf-bk-20191024/fdisk.out
|
||
|
```
|
||
|
|
||
|
### 2) Bash Script to Backup Configuration files on Remote Server
|
||
|
|
||
|
There are two scripts added in this example, which do the same as the above script, but this can be very useful if you have a JUMP server in your environment.
|
||
|
|
||
|
This script allows you to copy important configuration files from your client system into the JUMP box
|
||
|
|
||
|
For example, since we have already set up a password-less login, you have ten clients that can be accessed from the JUMP server. If so, use this script.
|
||
|
|
||
|
This is a real bash script that takes backup of configuration files on the remote server.
|
||
|
|
||
|
```
|
||
|
# vi /home/daygeek/shell-script/config-file-1.sh
|
||
|
|
||
|
#!/bin/bash
|
||
|
mkdir /tmp/conf-bk-$(date +%Y%m%d)
|
||
|
cd /tmp/conf-bk-$(date +%Y%m%d)
|
||
|
|
||
|
For General Configuration Files
|
||
|
hostname > hostname.out
|
||
|
uname -a > uname.out
|
||
|
uptime > uptime.out
|
||
|
cat /etc/hosts > hosts.out
|
||
|
/bin/df -h>df-h.out
|
||
|
pvs > pvs.out
|
||
|
vgs > vgs.out
|
||
|
lvs > lvs.out
|
||
|
/bin/ls -ltr /dev/mapper>mapper.out
|
||
|
fdisk -l > fdisk.out
|
||
|
cat /etc/fstab > fstab.out
|
||
|
cat /etc/exports > exports.out
|
||
|
cat /etc/crontab > crontab.out
|
||
|
cat /etc/passwd > passwd.out
|
||
|
ip link show > ip.out
|
||
|
/bin/netstat -in>netstat-in.out
|
||
|
/bin/netstat -rn>netstat-rn.out
|
||
|
/sbin/ifconfig -a>ifconfig-a.out
|
||
|
cat /etc/sysctl.conf > sysctl.out
|
||
|
sleep 10s
|
||
|
|
||
|
#For Physical Server
|
||
|
vserver=$(lscpu | grep vendor | wc -l)
|
||
|
if [ $vserver -gt 0 ]
|
||
|
then
|
||
|
echo "$(hostname) is a VM"
|
||
|
else
|
||
|
systool -c fc_host -v | egrep "(Class Device path | port_name |port_state)" > systool.out
|
||
|
fi
|
||
|
sleep 10s
|
||
|
|
||
|
#For Oracle DB Servers
|
||
|
if id oracle >/dev/null 2>&1; then
|
||
|
/usr/sbin/oracleasm listdisks>asm.out
|
||
|
/sbin/multipath -ll > mpath.out
|
||
|
/bin/ps -ef|grep pmon > pmon.out
|
||
|
else
|
||
|
echo "oracle user does not exist on server"
|
||
|
fi
|
||
|
sleep 10s
|
||
|
|
||
|
#Create a tar archieve
|
||
|
tar -cvf /tmp/$(hostname)-date +%Y%m%d.tar /tmp/conf-bk-$(date +%Y%m%d)
|
||
|
sleep 10s
|
||
|
|
||
|
#Remove the backup config folder
|
||
|
cd ..
|
||
|
rm -Rf conf-bk-$(date +%Y%m%d)
|
||
|
rm config-file.sh
|
||
|
exit
|
||
|
```
|
||
|
|
||
|
This is a sub-script that pushes the above script to the target server.
|
||
|
|
||
|
```
|
||
|
# vi /home/daygeek/shell-script/conf-remote-1.sh
|
||
|
|
||
|
#!/bin/bash
|
||
|
echo -e "Enter the Remote Server Name: \c"
|
||
|
read server
|
||
|
scp /home/daygeek/shell-script/config-file-1.sh $server:/tmp/
|
||
|
ssh [email protected]${server} sh /home/daygeek/shell-script/config-file-1.sh
|
||
|
sleep 10s
|
||
|
echo -e "Re-Enter the Remote Server Name: \c"
|
||
|
read server
|
||
|
scp $server:/tmp/$server-date +%Y%m%d.tar /home/daygeek/backup/
|
||
|
exit
|
||
|
```
|
||
|
|
||
|
Finally run the bash script to achieve this.
|
||
|
|
||
|
```
|
||
|
# sh /home/daygeek/shell-script/conf-remote-1.sh
|
||
|
|
||
|
Enter the Remote Server Name: CentOS6.2daygeek.com
|
||
|
config-file.sh 100% 1446 647.8KB/s 00:00
|
||
|
CentOS6.2daygeek.com is a VM
|
||
|
oracle user does not exist on server
|
||
|
tar: Removing leading `/' from member names
|
||
|
/tmp/conf-bk-20191025/
|
||
|
/tmp/conf-bk-20191025/pvs.out
|
||
|
/tmp/conf-bk-20191025/vgs.out
|
||
|
/tmp/conf-bk-20191025/ip.out
|
||
|
/tmp/conf-bk-20191025/netstat-in.out
|
||
|
/tmp/conf-bk-20191025/fstab.out
|
||
|
/tmp/conf-bk-20191025/ifconfig-a.out
|
||
|
/tmp/conf-bk-20191025/hostname.out
|
||
|
/tmp/conf-bk-20191025/crontab.out
|
||
|
/tmp/conf-bk-20191025/netstat-rn.out
|
||
|
/tmp/conf-bk-20191025/uptime.out
|
||
|
/tmp/conf-bk-20191025/uname.out
|
||
|
/tmp/conf-bk-20191025/mapper.out
|
||
|
/tmp/conf-bk-20191025/lvs.out
|
||
|
/tmp/conf-bk-20191025/exports.out
|
||
|
/tmp/conf-bk-20191025/df-h.out
|
||
|
/tmp/conf-bk-20191025/sysctl.out
|
||
|
/tmp/conf-bk-20191025/hosts.out
|
||
|
/tmp/conf-bk-20191025/passwd.out
|
||
|
/tmp/conf-bk-20191025/fdisk.out
|
||
|
Enter the Server Name Once Again: CentOS6.2daygeek.com
|
||
|
CentOS6.2daygeek.com-20191025.tar
|
||
|
```
|
||
|
|
||
|
Once you run the above script, use the ls command to check the copied tar archive file.
|
||
|
|
||
|
```
|
||
|
# ls -ltrh /home/daygeek/backup/*.tar
|
||
|
|
||
|
-rw-r--r-- 1 daygeek daygeek 30K Oct 25 11:44 /home/daygeek/backup/CentOS6.2daygeek.com-20191025.tar
|
||
|
```
|
||
|
|
||
|
If it is moved successfully, you can find the contents of it without extracting it using the following tar command.
|
||
|
|
||
|
```
|
||
|
# tar -tvf /home/daygeek/backup/CentOS6.2daygeek.com-20191025.tar
|
||
|
|
||
|
drwxr-xr-x root/root 0 2019-10-25 11:43 tmp/conf-bk-20191025/
|
||
|
-rw-r--r-- root/root 96 2019-10-25 11:43 tmp/conf-bk-20191025/pvs.out
|
||
|
-rw-r--r-- root/root 92 2019-10-25 11:43 tmp/conf-bk-20191025/vgs.out
|
||
|
-rw-r--r-- root/root 413 2019-10-25 11:43 tmp/conf-bk-20191025/ip.out
|
||
|
-rw-r--r-- root/root 361 2019-10-25 11:43 tmp/conf-bk-20191025/netstat-in.out
|
||
|
-rw-r--r-- root/root 785 2019-10-25 11:43 tmp/conf-bk-20191025/fstab.out
|
||
|
-rw-r--r-- root/root 1375 2019-10-25 11:43 tmp/conf-bk-20191025/ifconfig-a.out
|
||
|
-rw-r--r-- root/root 21 2019-10-25 11:43 tmp/conf-bk-20191025/hostname.out
|
||
|
-rw-r--r-- root/root 457 2019-10-25 11:43 tmp/conf-bk-20191025/crontab.out
|
||
|
-rw-r--r-- root/root 337 2019-10-25 11:43 tmp/conf-bk-20191025/netstat-rn.out
|
||
|
-rw-r--r-- root/root 61 2019-10-25 11:43 tmp/conf-bk-20191025/uptime.out
|
||
|
-rw-r--r-- root/root 116 2019-10-25 11:43 tmp/conf-bk-20191025/uname.out
|
||
|
-rw-r--r-- root/root 210 2019-10-25 11:43 tmp/conf-bk-20191025/mapper.out
|
||
|
-rw-r--r-- root/root 276 2019-10-25 11:43 tmp/conf-bk-20191025/lvs.out
|
||
|
-rw-r--r-- root/root 0 2019-10-25 11:43 tmp/conf-bk-20191025/exports.out
|
||
|
-rw-r--r-- root/root 236 2019-10-25 11:43 tmp/conf-bk-20191025/df-h.out
|
||
|
-rw-r--r-- root/root 1057 2019-10-25 11:43 tmp/conf-bk-20191025/sysctl.out
|
||
|
-rw-r--r-- root/root 115 2019-10-25 11:43 tmp/conf-bk-20191025/hosts.out
|
||
|
-rw-r--r-- root/root 2194 2019-10-25 11:43 tmp/conf-bk-20191025/passwd.out
|
||
|
-rw-r--r-- root/root 1089 2019-10-25 11:43 tmp/conf-bk-20191025/fdisk.out
|
||
|
```
|
||
|
|
||
|
### 3) Bash Script to Backup Configuration files on Multiple Linux Remote Systems
|
||
|
|
||
|
This script allows you to copy important configuration files from multiple remote Linux systems into the JUMP box at the same time.
|
||
|
|
||
|
This is a real bash script that takes backup of configuration files on the remote server.
|
||
|
|
||
|
```
|
||
|
# vi /home/daygeek/shell-script/config-file-2.sh
|
||
|
|
||
|
#!/bin/bash
|
||
|
mkdir /tmp/conf-bk-$(date +%Y%m%d)
|
||
|
cd /tmp/conf-bk-$(date +%Y%m%d)
|
||
|
|
||
|
For General Configuration Files
|
||
|
hostname > hostname.out
|
||
|
uname -a > uname.out
|
||
|
uptime > uptime.out
|
||
|
cat /etc/hosts > hosts.out
|
||
|
/bin/df -h>df-h.out
|
||
|
pvs > pvs.out
|
||
|
vgs > vgs.out
|
||
|
lvs > lvs.out
|
||
|
/bin/ls -ltr /dev/mapper>mapper.out
|
||
|
fdisk -l > fdisk.out
|
||
|
cat /etc/fstab > fstab.out
|
||
|
cat /etc/exports > exports.out
|
||
|
cat /etc/crontab > crontab.out
|
||
|
cat /etc/passwd > passwd.out
|
||
|
ip link show > ip.out
|
||
|
/bin/netstat -in>netstat-in.out
|
||
|
/bin/netstat -rn>netstat-rn.out
|
||
|
/sbin/ifconfig -a>ifconfig-a.out
|
||
|
cat /etc/sysctl.conf > sysctl.out
|
||
|
sleep 10s
|
||
|
|
||
|
#For Physical Server
|
||
|
vserver=$(lscpu | grep vendor | wc -l)
|
||
|
if [ $vserver -gt 0 ]
|
||
|
then
|
||
|
echo "$(hostname) is a VM"
|
||
|
else
|
||
|
systool -c fc_host -v | egrep "(Class Device path | port_name |port_state)" > systool.out
|
||
|
fi
|
||
|
sleep 10s
|
||
|
|
||
|
#For Oracle DB Servers
|
||
|
if id oracle >/dev/null 2>&1; then
|
||
|
/usr/sbin/oracleasm listdisks>asm.out
|
||
|
/sbin/multipath -ll > mpath.out
|
||
|
/bin/ps -ef|grep pmon > pmon.out
|
||
|
else
|
||
|
echo "oracle user does not exist on server"
|
||
|
fi
|
||
|
sleep 10s
|
||
|
|
||
|
#Create a tar archieve
|
||
|
tar -cvf /tmp/$(hostname)-date +%Y%m%d.tar /tmp/conf-bk-$(date +%Y%m%d)
|
||
|
sleep 10s
|
||
|
|
||
|
#Remove the backup config folder
|
||
|
cd ..
|
||
|
rm -Rf conf-bk-$(date +%Y%m%d)
|
||
|
rm config-file.sh
|
||
|
exit
|
||
|
```
|
||
|
|
||
|
This is a sub-script that pushes the above script to the target servers.
|
||
|
|
||
|
```
|
||
|
# vi /home/daygeek/shell-script/conf-remote-2.sh
|
||
|
|
||
|
#!/bin/bash
|
||
|
for server in CentOS6.2daygeek.com CentOS7.2daygeek.com
|
||
|
do
|
||
|
scp /home/daygeek/shell-script/config-file-2.sh $server:/tmp/
|
||
|
ssh [email protected]${server} sh /tmp/config-file-2.sh
|
||
|
sleep 10s
|
||
|
scp $server:/tmp/$server-date +%Y%m%d.tar /home/daygeek/backup/
|
||
|
done
|
||
|
exit
|
||
|
```
|
||
|
|
||
|
Finally run the bash script to achieve this.
|
||
|
|
||
|
```
|
||
|
# sh /home/daygeek/shell-script/conf-remote-2.sh
|
||
|
|
||
|
config-file-1.sh 100% 1444 416.5KB/s 00:00
|
||
|
CentOS6.2daygeek.com is a VM
|
||
|
oracle user does not exist on server
|
||
|
tar: Removing leading `/' from member names
|
||
|
/tmp/conf-bk-20191025/
|
||
|
/tmp/conf-bk-20191025/pvs.out
|
||
|
/tmp/conf-bk-20191025/vgs.out
|
||
|
/tmp/conf-bk-20191025/ip.out
|
||
|
/tmp/conf-bk-20191025/netstat-in.out
|
||
|
/tmp/conf-bk-20191025/fstab.out
|
||
|
/tmp/conf-bk-20191025/ifconfig-a.out
|
||
|
/tmp/conf-bk-20191025/hostname.out
|
||
|
/tmp/conf-bk-20191025/crontab.out
|
||
|
/tmp/conf-bk-20191025/netstat-rn.out
|
||
|
/tmp/conf-bk-20191025/uptime.out
|
||
|
/tmp/conf-bk-20191025/uname.out
|
||
|
/tmp/conf-bk-20191025/mapper.out
|
||
|
/tmp/conf-bk-20191025/lvs.out
|
||
|
/tmp/conf-bk-20191025/exports.out
|
||
|
/tmp/conf-bk-20191025/df-h.out
|
||
|
/tmp/conf-bk-20191025/sysctl.out
|
||
|
/tmp/conf-bk-20191025/hosts.out
|
||
|
/tmp/conf-bk-20191025/passwd.out
|
||
|
/tmp/conf-bk-20191025/fdisk.out
|
||
|
CentOS6.2daygeek.com-20191025.tar
|
||
|
config-file-1.sh 100% 1444 386.2KB/s 00:00
|
||
|
CentOS7.2daygeek.com is a VM
|
||
|
oracle user does not exist on server
|
||
|
/tmp/conf-bk-20191025/
|
||
|
/tmp/conf-bk-20191025/hostname.out
|
||
|
/tmp/conf-bk-20191025/uname.out
|
||
|
/tmp/conf-bk-20191025/uptime.out
|
||
|
/tmp/conf-bk-20191025/hosts.out
|
||
|
/tmp/conf-bk-20191025/df-h.out
|
||
|
/tmp/conf-bk-20191025/pvs.out
|
||
|
/tmp/conf-bk-20191025/vgs.out
|
||
|
/tmp/conf-bk-20191025/lvs.out
|
||
|
/tmp/conf-bk-20191025/mapper.out
|
||
|
/tmp/conf-bk-20191025/fdisk.out
|
||
|
/tmp/conf-bk-20191025/fstab.out
|
||
|
/tmp/conf-bk-20191025/exports.out
|
||
|
/tmp/conf-bk-20191025/crontab.out
|
||
|
/tmp/conf-bk-20191025/passwd.out
|
||
|
/tmp/conf-bk-20191025/ip.out
|
||
|
/tmp/conf-bk-20191025/netstat-in.out
|
||
|
/tmp/conf-bk-20191025/netstat-rn.out
|
||
|
/tmp/conf-bk-20191025/ifconfig-a.out
|
||
|
/tmp/conf-bk-20191025/sysctl.out
|
||
|
tar: Removing leading `/' from member names
|
||
|
CentOS7.2daygeek.com-20191025.tar
|
||
|
```
|
||
|
|
||
|
Once you run the above script, use the ls command to check the copied tar archive file.
|
||
|
|
||
|
```
|
||
|
# ls -ltrh /home/daygeek/backup/*.tar
|
||
|
|
||
|
-rw-r--r-- 1 daygeek daygeek 30K Oct 25 12:37 /home/daygeek/backup/CentOS6.2daygeek.com-20191025.tar
|
||
|
-rw-r--r-- 1 daygeek daygeek 30K Oct 25 12:38 /home/daygeek/backup/CentOS7.2daygeek.com-20191025.tar
|
||
|
```
|
||
|
|
||
|
If it is moved successfully, you can find the contents of it without extracting it using the following tar command.
|
||
|
|
||
|
```
|
||
|
# tar -tvf /home/daygeek/backup/CentOS7.2daygeek.com-20191025.tar
|
||
|
|
||
|
drwxr-xr-x root/root 0 2019-10-25 12:23 tmp/conf-bk-20191025/
|
||
|
-rw-r--r-- root/root 21 2019-10-25 12:23 tmp/conf-bk-20191025/hostname.out
|
||
|
-rw-r--r-- root/root 115 2019-10-25 12:23 tmp/conf-bk-20191025/uname.out
|
||
|
-rw-r--r-- root/root 62 2019-10-25 12:23 tmp/conf-bk-20191025/uptime.out
|
||
|
-rw-r--r-- root/root 228 2019-10-25 12:23 tmp/conf-bk-20191025/hosts.out
|
||
|
-rw-r--r-- root/root 501 2019-10-25 12:23 tmp/conf-bk-20191025/df-h.out
|
||
|
-rw-r--r-- root/root 88 2019-10-25 12:23 tmp/conf-bk-20191025/pvs.out
|
||
|
-rw-r--r-- root/root 84 2019-10-25 12:23 tmp/conf-bk-20191025/vgs.out
|
||
|
-rw-r--r-- root/root 252 2019-10-25 12:23 tmp/conf-bk-20191025/lvs.out
|
||
|
-rw-r--r-- root/root 197 2019-10-25 12:23 tmp/conf-bk-20191025/mapper.out
|
||
|
-rw-r--r-- root/root 1088 2019-10-25 12:23 tmp/conf-bk-20191025/fdisk.out
|
||
|
-rw-r--r-- root/root 465 2019-10-25 12:23 tmp/conf-bk-20191025/fstab.out
|
||
|
-rw-r--r-- root/root 0 2019-10-25 12:23 tmp/conf-bk-20191025/exports.out
|
||
|
-rw-r--r-- root/root 451 2019-10-25 12:23 tmp/conf-bk-20191025/crontab.out
|
||
|
-rw-r--r-- root/root 2748 2019-10-25 12:23 tmp/conf-bk-20191025/passwd.out
|
||
|
-rw-r--r-- root/root 861 2019-10-25 12:23 tmp/conf-bk-20191025/ip.out
|
||
|
-rw-r--r-- root/root 455 2019-10-25 12:23 tmp/conf-bk-20191025/netstat-in.out
|
||
|
-rw-r--r-- root/root 505 2019-10-25 12:23 tmp/conf-bk-20191025/netstat-rn.out
|
||
|
-rw-r--r-- root/root 2072 2019-10-25 12:23 tmp/conf-bk-20191025/ifconfig-a.out
|
||
|
-rw-r--r-- root/root 449 2019-10-25 12:23 tmp/conf-bk-20191025/sysctl.out
|
||
|
```
|
||
|
|
||
|
--------------------------------------------------------------------------------
|
||
|
|
||
|
via: https://www.2daygeek.com/linux-bash-script-backup-configuration-files-remote-linux-system-server/
|
||
|
|
||
|
作者:[Magesh Maruthamuthu][a]
|
||
|
选题:[lujun9972][b]
|
||
|
译者:[译者ID](https://github.com/译者ID)
|
||
|
校对:[校对者ID](https://github.com/校对者ID)
|
||
|
|
||
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||
|
|
||
|
[a]: https://www.2daygeek.com/author/magesh/
|
||
|
[b]: https://github.com/lujun9972
|
||
|
[1]: https://www.2daygeek.com/category/bash-script/
|
||
|
[2]: https://www.2daygeek.com/category/shell-script/
|