数组结合循环处理重复性操作的shell实例

简介:

  最近在论坛看到两个帖子,一个是IP地址批量转换,另一个是备份文件夹下当天数据到另一个文件夹,并将文件夹命名为$用户名+$时间+$文件名的格式,刚好最近在学习shell就用他们来练手了,算是实践结合理论了。


1. IP批量转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
# It  is  a scripts of IP address quantity convert to hostname.
#E_FILE_EXIST= 65
#
# if  [ ! -f $ 1  ];then
#   echo  "Usage:`basename $0` filename."
#   exit $E_FILE_EXIST
#fi
#IP=(`cat $ 1 `)
IP=(
8.8 . 8.8
202.96 . 209.5  202.96 . 209.133  202.96 . 209.6
www.sohu.com
)
echo ------------------------------------------------------------------------
IP_num=${#IP[*]}
for  ((i= 0 ;i< "$IP_num" ;i++))
do
host_name=`host ${IP[$i]} | awk  '{print $NF}' `
echo -n -e  "${IP[$i]} ---> `echo $host_name` \n"
done
echo ------------------------------------------------------------------------
IP_number=${#IP[*]}
while  "$IP_number"  -gt  0  ]
do
IP_number=$(($IP_number- 1 ))
host_name=`host ${IP[$IP_number]} | awk  '{print $NF}' `
echo -n -e  "${IP[$IP_number]} ---> `echo $host_name`\n"
done
echo ------------------------------------------------------------------------
exit 0b


2. 备份当天数据


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
# It  is  backup data scripts of the same days.
# Variable  "DATA_DIR"  is  backup diritory.
# Variable  "BACKUP_DIR"  is  backup to paths.
DATA_DIR= "/usr/local/bin/scripts"
BACKUP_DIR= "/tmp"
# ls -l $DATA_DIR
# read -p  "Please enter dirtory name(Usage:/paths/dirtory):"  BACKUP_DIR
BACKUP_FILE=(`find $DATA_DIR -mtime - 1  | awk -F /  '{print $NF}' `)
BACKUP_NUM=${#BACKUP_FILE[*]}
NOW_USER=`whoami`
NOW_DATE=`date +_%Y-%m-%d_`
for  ((i= 1 ;i<$BACKUP_NUM;i++))
do
/bin/cp -rf $DATA_DIR/${BACKUP_FILE[$i]} $BACKUP_DIR/ "$NOW_USER$NOW_DATE${BACKUP_FILE[$i]}"
# 这里有个小技巧,“find -mtime”获取的数据第一个是当前目录,不需要备份,而数组是从 0 开始;所以这了i从 1 开始计数刚好规避了这个不需要的备份。
echo  "copy file(or diretory) \"$DATA_DIR/${BACKUP_FILE[$i]}\" to \"$BACKUP_DIR/$NOW_USER$NOW_DATE${BACKUP_FILE[$i]}\""
done
exit  0










本文转自 chengchow 51CTO博客,原文链接:http://blog.51cto.com/chengchow/1323584,如需转载请自行联系原作者
目录
相关文章
|
存储 运维 Shell
shell中for while until 三种循环的用法
shell编程中,有几种常见的循环结构,包括for循环、while循环和until循环,总的来说,循环shell编程中扮演着至关重要的角色,它们使得自动化任务变得更加容易,提高了效率,并且可以处理各种各样的编程需求。
765 13
shell中for while until 三种循环的用法
|
存储 Shell
Shell 数组
【10月更文挑战第16天】
330 3
|
SQL Oracle 关系型数据库
在MySQL Shell里 重启MySQL 8.4实例
在MySQL Shell里 重启MySQL 8.4实例
493 2
|
Shell PHP 索引
Shell 数组
10月更文挑战第2天
202 1
|
Shell 应用服务中间件 网络安全
|
Shell KVM 虚拟化
Shell 数组编程
【8月更文挑战第22天】 Shell 数组编程
264 10
|
Shell 测试技术 Linux
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
429 3
|
SQL Shell 数据库
在TDengine容器中创建初始化数据库的Shell命令实例
以上就是在Docker容器环境中部署并初始化TDengine数据库的全过程,希望对你有所帮助。
679 0
|
Shell UED Python
Shell 循环语句:重复任务的自动化利器
在Shell脚本中,循环语句如`while`和`for`是自动化任务的关键。`while`循环在条件满足时执行,例如计算1到100的和;`for-in`循环遍历列表,可用于迭代指定数值或命令输出,如求1到100的和。`select-in`循环提供交互式菜单,增强脚本用户体验。理解并运用这些循环能提升脚本效率和可读性。现在,动手试试吧!
274 2
|
Shell Linux
shell循环读文件 Linux脚本读文件
shell循环读文件 Linux脚本读文件
207 3