HOWTO: Setup DSH PDF Print E-mail
User Rating: / 2
PoorBest 
Written by Michael Felt   

DSH: The basics

I have used dsh a lot over the years, but I always had trouble getting it setup quickly. Here you will find the bare basics to get dsh up and running.

Enjoy!

1. Fileset names

Starting with AIX 6.1 TL3 the fileset name changed from csm.dsh to dsm.dsh.
The current fileset for AIX 5.3 and AIX 6.1 through 6100-02 (or AIX 6.1 TL2) is:
  csm.dsh                    1.7.1.5    C     F    Cluster Systems Management Dsh
And on AIX 6.1 TL3 and later the fileset of choice is:
  dsm.dsh                   7.1.2.16    C     F    Distributed Systems Management

2. Define environment variables to make life easier!

export DSH_NODE_RSH=/usr/bin/ssh
export DSH_NODE_RCP=/usr/bin/scp
export DSH_NODE_LIST=$HOME/.dsh/AllNodes
export DSH_NODEGROUP_PATH=${HOME}/.dsh/grps   # create files in this directory for different lists
## possible alturnate port and/or username
export DSH_NODE_OPTS="-p 22 -l root"
export DCP_NODE_OPTS="-p 22 -l root"
# do not want to wait forever when virtual machines are turned off
export DSH_TIMEOUT=3


3. You need a known_hosts relationship to use dsh

The first step is to is to get all the hosts you want to contact included in $HOME/.ssh/known_hosts -- and maybe in AllNodes as well. I use this script to get both short and longname included. I should probably add a line that adds the IP address as well (each are unique known_hosts entries).
Note - both short and longnames are needed because dsh generally expands a shortname argument to a longname when it connects to the remote host.

#!/usr/bin/ksh
# run the date command on remote hosts using dsh.
# if dsh fails run ssh to add key to known_hosts
# using both short and long names
for shortname in $*
do
dsh -n $shortname -r /usr/bin/ssh -l root date
if [[ $? != 0 ]]; then
    print "$0: the command\n>> dsh -n $shortname -r /usr/bin/ssh -l root date <<\nreturned an error"
    print "$0: executing a ssh command to fix common authentification problems\n"

    nslookup $shortname | grep Name: | read xxx fullname
    print "$0: answer yes to both: ssh root@$fullname date\n and sh root@$shortname date"

    print "$0: executing >>ssh root@$fullname date<<"
    ssh root@$fullname date
    print "$0: executing >>ssh root@$shortname date<<"
    print "\nssh root@$shortname date"
    ssh root@$shortname date
fi
    [[ ! -z ${DSH_NODE_LIST} ]] && [[ -e ${DSH_NODE_LIST} ]] && \
    (grep $shortname ${DSH_NODE_LIST} || print $shortname >> ${DSH_NODE_LIST})
done

 
< Prev   Next >
Login
61 queries executed
1
SET sql_mode = 'MYSQL40'
2 SELECT folder, element, published, params FROM jos_mambots WHERE published >= 1 AND access <= 0 AND folder = 'system' ORDER BY ordering
3 SELECT template FROM jos_templates_menu WHERE client_id = 0 AND ( menuid = 0 OR menuid = 309 ) ORDER BY menuid DESC LIMIT 1
4 DELETE FROM jos_session WHERE ( ( time < '1548314929' ) AND guest = 0 AND gid > 0 ) OR ( ( time < '1548314929' ) AND guest = 1 AND userid = 0 )
5 SELECT COUNT(*) FROM jos_stats_agents WHERE agent = 'Unknown' AND type = 0
6 UPDATE jos_stats_agents SET hits = ( hits + 1 ) WHERE agent = 'Unknown' AND type = 0
7 SELECT COUNT(*) FROM jos_stats_agents WHERE agent = 'Unknown' AND type = 1
8 UPDATE jos_stats_agents SET hits = ( hits + 1 ) WHERE agent = 'Unknown' AND type = 1
9 SELECT COUNT(*) FROM jos_stats_agents WHERE agent = 'com' AND type = 2
10 UPDATE jos_stats_agents SET hits = ( hits + 1 ) WHERE agent = 'com' AND type = 2
11 SELECT * FROM jos_menu WHERE id = 309
12 SELECT a.*, u.name AS author, u.usertype, cc.name AS category, s.name AS section, g.name AS groups, s.published AS sec_pub, cc.published AS cat_pub, s.access AS sec_access, cc.access AS cat_access, s.id AS sec_id, cc.id as cat_id FROM jos_content AS a LEFT JOIN jos_categories AS cc ON cc.id = a.catid LEFT JOIN jos_sections AS s ON s.id = cc.section AND s.scope = 'content' LEFT JOIN jos_users AS u ON u.id = a.created_by LEFT JOIN jos_groups AS g ON a.access = g.id WHERE a.id = 634 AND ( a.state = 1 OR a.state = -1 ) AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2019-01-24 08:43' ) AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2019-01-24 08:43' ) AND a.access <= 0
13 SELECT a.id FROM jos_content AS a WHERE a.catid = 19 AND a.state = 1 AND a.access <= 0 AND ( a.state = 1 OR a.state = -1 ) AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2019-01-24 08:43' ) AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2019-01-24 08:43' ) ORDER BY a.created DESC
14 SELECT ROUND( v.rating_sum / v.rating_count ) AS rating, v.rating_count FROM jos_content AS a LEFT JOIN jos_content_rating AS v ON a.id = v.content_id WHERE a.id = 634
15 UPDATE jos_content SET hits = ( hits + 1 ) WHERE id = '634'
16 SELECT hits FROM jos_core_log_items WHERE time_stamp = '2019-01-24' AND item_table = '#__content' AND item_id = '634'
17 UPDATE jos_core_log_items SET hits = ( hits + 1 ) WHERE time_stamp = '2019-01-24' AND item_table = '#__content' AND item_id = '634'
18 SELECT folder, element, published, params FROM jos_mambots WHERE access <= 0 AND folder = 'content' ORDER BY ordering
19 SELECT value FROM jos_bookmarks_prefs WHERE userid = '-1' AND category = 'params' AND name = 'urlkey'
20 SELECT value FROM jos_bookmarks_prefs WHERE userid = '-1' AND category = 'params' AND name = 'snapshotactiv'
21 SELECT value FROM jos_bookmarks_prefs WHERE userid = '-1' AND category = 'params' AND name = 'snapshotother'
22 SELECT id FROM jos_mambots WHERE element = 'mosbookmarks' AND folder = 'content'
23 SELECT * FROM jos_mambots WHERE id = '32'
24 SELECT name, value FROM jos_bookmarks_prefs WHERE userid = '-1' AND category = 'params' ORDER BY name
25 SELECT c.id, c.parent FROM jos_bookmarks_categories as c WHERE c.id = -1
26 SELECT * FROM jos_bookmarks_columns WHERE category='' AND custom='0'
27 SELECT * FROM jos_bookmarks_columns WHERE category='' ORDER BY ordering
28 SELECT * FROM jos_bookmarks_columns WHERE category='admin'
29 SELECT * FROM jos_bookmarks_columns WHERE category='admin' ORDER BY ordering
30 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
31 SELECT * FROM jos_mambots WHERE id = '27'
32 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
33 SELECT * FROM jos_mambots WHERE id = '27'
34 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
35 SELECT * FROM jos_mambots WHERE id = '27'
36 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
37 SELECT * FROM jos_mambots WHERE id = '27'
38 SELECT params FROM jos_mambots WHERE element = 'mosemailcloak' AND folder = 'content'
39 SELECT a.* FROM jos_components AS a WHERE ( a.admin_menu_link = 'option=com_syndicate' OR a.admin_menu_link = 'option=com_syndicate&hidemainmenu=1' ) AND a.option = 'com_syndicate'
40 SELECT m.id FROM jos_modules AS m WHERE m.module = 'mod_rssfeed' AND m.published = 1
41 SELECT id, title, module, position, content, showtitle, params FROM jos_modules AS m INNER JOIN jos_modules_menu AS mm ON mm.moduleid = m.id WHERE m.published = 1 AND m.access <= 0 AND m.client_id != 1 AND ( mm.menuid = 0 OR mm.menuid = 309 ) ORDER BY ordering
42 SELECT id FROM jos_menu WHERE link = 'index.php?option=com_search' AND published = 1
43 SELECT m.*, sum(case when p.published=1 then 1 else 0 end) as cnt FROM jos_menu AS m LEFT JOIN jos_menu AS p ON p.parent = m.id WHERE m.menutype='rt_splitSuckerFish' AND m.published='1' AND m.access <= '0' GROUP BY m.id ORDER BY m.parent, m.ordering
44 SELECT m.* FROM jos_menu AS m WHERE menutype='rt_splitSuckerFish' AND m.published='1'
45 SELECT * FROM jos_banner WHERE showBanner=1
46 SELECT id FROM jos_mambots WHERE element = 'mosbookmarks' AND folder = 'content'
47 SELECT * FROM jos_mambots WHERE id = '32'
48 SELECT name, value FROM jos_bookmarks_prefs WHERE userid = '-1' AND category = 'params' ORDER BY name
49 SELECT c.id, c.parent FROM jos_bookmarks_categories as c WHERE c.id = -1
50 SELECT * FROM jos_bookmarks_columns WHERE category='' AND custom='0'
51 SELECT * FROM jos_bookmarks_columns WHERE category='' ORDER BY ordering
52 SELECT * FROM jos_bookmarks_columns WHERE category='admin'
53 SELECT * FROM jos_bookmarks_columns WHERE category='admin' ORDER BY ordering
54 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
55 SELECT * FROM jos_mambots WHERE id = '27'
56 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
57 SELECT * FROM jos_mambots WHERE id = '27'
58 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
59 SELECT * FROM jos_mambots WHERE id = '27'
60 SELECT id FROM jos_mambots WHERE element = 'plugin_jw_allvideos' AND folder = 'content'
61 SELECT * FROM jos_mambots WHERE id = '27'