1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;
# cp /etc/rc.d/rc.sysinit /tmp/ # vim /tmp/rc.sysinit
替换命令: %s@^[[:space:]]\+@#&@g
如图中的13、16、20-21行:
2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;
# cp /boot/grub/grub.conf /tmp/ # vim /tmp/grub.conf
替换命令: %s/^[[:space:]]\+//g
3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符
# vim /tmp/rc.sysinit
使用vim替换命令: %s/^#[[:space:]]\+//g
替换前:
替换后:
4、为/tmp/grub.conf文件中前三行的行首加#号;
# vim /tmp/grub.conf
vim替换命令:1,3s/^/#/
替换前:
替换后:
5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;
使用vim打开文件,并用替换命令进行修改,替换命令::%s#enabled=0#enabled=1#
替换前:
替换后:
6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201608300202
使用crontab -e命令创建一条计划任务,内容如下:
crontab -e 0 */4 * * * /usr/bin/tar -cJf /backup/etc-$(date +"\%Y\%m\%d\%H\%M").tar.xz /etc/ &> /dev/null
结果:
说明:
每4个小时归档压缩(xz)/etc目录,保存至/backup目录下
7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20160830
使用crontab -e命令创建一条计划任务,内容如下:
0 0 * * 2,4,6 /usr/bin/tar -cJf /backup/messages_logs/messages-$(date +"\%Y\%m\%d").tar.xz /var/log/messages/ &> /dev/null
8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中
# crontab -e 0 */2 * * * /usr/bin/grep '^S' /proc/meminfo > /stats/memory.txt
9、工作日的工作时间内,每两小时执行一次echo "howdy"
# crontab -e 0 9-17/2 * * 1-5 /usr/bin/echo 'howdy'
脚本编程练习
10、创建目录/tmp/testdir-当前日期时间;
#!/bin/bash # dateTime=$(date +"%Y%m%d%H%M") dir=/tmp/testdir-$dateTime if [ -d $dir ]; then echo "$dir already existed!" else mkdir $dir &> /dev/null fi
结果:
11、在此目录创建100个空文件:file1-file100
#!/bin/bash # dateTime=$(date +"%Y%m%d%H%M") dir=/tmp/testdir-$dateTime if [ -d $dir ]; then echo "$dir already existed!" else mkdir $dir &> /dev/null fi cd $dir for i in {1..100}; do touch file$i done
结果:
12、显示/etc/passwd文件中位于第偶数行的用户的用户名;
#!/bin/bash # userNum=$(cat /etc/passwd | wc -l) i=2 while [ $i -le $userNum ] do echo "Line $i: $(head -$i /etc/passwd | tail -1 | cut -d: -f1)" let i=i+2 done
结果:
13、创建10用户user10-user19;密码同用户名;
#!/bin/bash # if [ ! $UID -eq 0 ] then echo "Please login root." exit 1 fi for i in $(seq 10 19) do if id user$i &> /dev/null then echo "$user$i already existed!" else useradd user$i && echo "user$i" | passwd --stdin user$i &> /dev/null && echo "Add user$i finished." fi done
结果:
14、在/tmp/创建10个空文件file10-file19;
#!/bin/bash # for i in $(seq 10 19) do if [ -e /tmp/file$i ] then echo "file$i already existed!" else touch /tmp/file$i && echo "file$i finished!" fi done
结果:
15、把file10的属主和属组改为user10,依次类推。
#!/bin/bash # for i in {10..19} do if [ -e /tmp/file$i ] then chown user$i:user$i /tmp/file$i && ls -l /tmp/file$i else echo "/tmp/file$i not exist!" fi done
结果: