dracut-module-setup: get localhost alias by manual
'hostname -A' can not get the alias, meanwhile 'hostname -a' is deprecated. So we should do it by ourselves. The parsing is based on the format of /etc/hosts, i.e. IP_address canonical_hostname [aliases...] Signed-off-by: Pingfan Liu <piliu@redhat.com> Acked-by: Kairui Song <kasong@redhat.com>
This commit is contained in:
		
							parent
							
								
									d9c0c2f68f
								
							
						
					
					
						commit
						f0b5493b2e
					
				| @ -689,12 +689,31 @@ kdump_check_iscsi_targets () { | |||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | # hostname -a is deprecated, do it by ourself | ||||||
|  | get_alias() { | ||||||
|  |     local ips | ||||||
|  |     local entries | ||||||
|  |     local alias_set | ||||||
|  | 
 | ||||||
|  |     ips=$(hostname -I) | ||||||
|  |     for ip in $ips | ||||||
|  |     do | ||||||
|  |             entries=$(grep $ip /etc/hosts | awk '{ $1=$2=""; print $0 }') | ||||||
|  |             if [ $? -eq 0 ]; then | ||||||
|  |                     alias_set="$alias_set $entries" | ||||||
|  |             fi | ||||||
|  |     done | ||||||
|  | 
 | ||||||
|  |     echo $alias_set | ||||||
|  | } | ||||||
|  | 
 | ||||||
| is_localhost() { | is_localhost() { | ||||||
|     local hostnames=$(hostname -A) |     local hostnames=$(hostname -A) | ||||||
|     local shortnames=$(hostname -A -s) |     local shortnames=$(hostname -A -s) | ||||||
|  |     local aliasname=$(get_alias) | ||||||
|     local nodename=$1 |     local nodename=$1 | ||||||
| 
 | 
 | ||||||
|     hostnames="$hostnames $shortnames" |     hostnames="$hostnames $shortnames $aliasname" | ||||||
| 
 | 
 | ||||||
|     for name in ${hostnames}; do |     for name in ${hostnames}; do | ||||||
|         if [ "$name" == "$nodename" ]; then |         if [ "$name" == "$nodename" ]; then | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user