The objective is the reuse about variables and why not all GNU/Linux distributions installs the commands by default in the same place
I am going to allocate a variable per each different command. This file will be included in other shell scripts.
preferences.cfg
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
| CMD_AWK="/usr/bin/awk"
CMD_CAT="/bin/cat"
CMD_CHGRP="/bin/chgrp"
CMD_CHMOD="/bin/chmod"
CMD_DD="/bin/dd"
CMD_DIFF="/usr/bin/diff"
CMD_ECHO="/bin/echo"
CMD_FIND="/usr/bin/find"
CMD_GREP="/bin/grep"
CMD_LAST="/usr/bin/last"
CMD_LASTB="/usr/bin/lastb"
CMD_LS="/bin/ls"
CMD_LSB_RELEASE="/usr/bin/lsb_release"
CMD_MKDIR="/bin/mkdir"
CMD_MKFS="/sbin/mkfs.ext2"
CMD_MKNOD="/bin/mknod"
CMD_MOUNT="/bin/mount"
CMD_MYSQL="/usr/bin/mysql"
CMD_PHP="/usr/bin/php5"
CMD_SED="/bin/sed"
CMD_SEQ="/usr/bin/seq"
CMD_SORT="/usr/bin/sort"
CMD_STAT="/usr/bin/stat"
CMD_TAIL="/usr/bin/tail"
CMD_TOUCH="/bin/touch"
CMD_TUNE2FS="/sbin/tune2fs"
CMD_UNAME="/bin/uname"
CMD_YES="/usr/bin/yes"
CMD_WC="/usr/bin/wc" |
This shell script "preferences.bash" checks the availability about each command defined in the variables saved in the data file "preferences.cfg".
preferences.bash
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
| #!/bin/bash
# Check the availability about the commands that will be used
# Include global preferences
source $PWD/preferences.cfg
CMD=$($CMD_CAT $PWD/preferences.cfg)
echo -e "Check the availability about the commands that will be used \r"
# Checks if path is ok
for line in $CMD;
do
TEST=$($CMD_ECHO "$line" | $CMD_AWK -F= '{ print $2 }' | $CMD_SED 's/"//g')
echo -n ""
if [ -e $TEST ]; then
echo -n "[Passed]"
else
echo -n "[Failed]"
fi
echo -n " ... $TEST"
echo -e "\r"
done; |
Sample output
Check the availability about the commands that will be used
[Passed] … /usr/bin/awk
[Passed] … /bin/cat
[Passed] … /bin/chgrp
[Passed] … /bin/chmod
[Passed] … /bin/dd
[Passed] … /usr/bin/diff
[Passed] … /bin/echo
[Passed] … /usr/bin/find
[Passed] … /bin/grep
[Passed] … /usr/bin/last
[Passed] … /usr/bin/lastb
[Passed] … /bin/ls
[Passed] … /usr/bin/lsb_release
[Passed] … /bin/mkdir
[Passed] … /sbin/mkfs.ext2
[Passed] … /bin/mknod
[Passed] … /bin/mount
[Failed] … /usr/bin/mysql
[Failed] … /usr/bin/php5
[Passed] … /bin/sed
[Passed] … /usr/bin/seq
[Passed] … /usr/bin/sort
[Passed] … /usr/bin/stat
[Passed] … /usr/bin/tail
[Passed] … /bin/touch
[Passed] … /sbin/tune2fs
[Passed] … /bin/uname
[Passed] … /usr/bin/yes
[Passed] … /usr/bin/wc
Tags: available, bash, commands, filesystem, shell script, testing
Linux, Programación, Scripting, Scripts, Security, Shell, SRR, STIG | salonso |
January 26, 2012 8:21 pm |
Comments (0)
SQL Commands
sql> SELECT VERSION();
Output:
5.0.51-log
sql> SHOW VARIABLES();
Output:
| Variable_name |
Value |
| auto_increment_increment |
1 |
| auto_increment_offset |
1 |
| automatic_sp_privileges |
ON |
| back_log |
50 |
| basedir |
D:\MySQL_BIN\ |
| binlog_cache_size |
32768 |
| bulk_insert_buffer_size |
8388608 |
| character_set_client |
utf8 |
| character_set_connection |
utf8 |
| character_set_database |
latin1 |
| character_set_filesystem |
binary |
| character_set_results |
utf8 |
| character_set_server |
latin1 |
| character_set_system |
utf8 |
| character_sets_dir |
D:\MySQL_BIN\share\charsets\ |
| collation_connection |
utf8_general_ci |
| collation_database |
latin1_swedish_ci |
| collation_server |
latin1_swedish_ci |
| completion_type |
0 |
| concurrent_insert |
1 |
| connect_timeout |
5 |
| datadir |
D:\MySQL_DATA_CA\Data\ |
| date_format |
%Y-%m-%d |
| datetime_format |
%Y-%m-%d %H:%i:%s |
| default_week_format |
0 |
| delay_key_write |
ON |
| delayed_insert_limit |
100 |
| delayed_insert_timeout |
300 |
| delayed_queue_size |
1000 |
| div_precision_increment |
4 |
| keep_files_on_create |
OFF |
| engine_condition_pushdown |
OFF |
| expire_logs_days |
0 |
| flush |
OFF |
| flush_time |
1800 |
| ft_boolean_syntax |
+ -><()~*:”"&| |
| ft_max_word_len |
84 |
| ft_min_word_len |
4 |
| ft_query_expansion_limit |
20 |
| ft_stopword_file |
(built-in) |
| group_concat_max_len |
1024 |
| have_archive |
YES |
| have_bdb |
NO |
| have_blackhole_engine |
YES |
| have_compress |
YES |
| have_crypt |
NO |
| have_csv |
NO |
| have_dynamic_loading |
YES |
| have_example_engine |
NO |
| have_federated_engine |
YES |
| have_geometry |
YES |
| have_innodb |
YES |
| have_isam |
NO |
| have_merge_engine |
YES |
| have_ndbcluster |
NO |
| have_openssl |
DISABLED |
| have_ssl |
DISABLED |
| have_query_cache |
YES |
| have_raid |
NO |
| have_rtree_keys |
YES |
| have_symlink |
YES |
| hostname |
sek-sql-server |
| init_connect |
|
| init_file |
|
| init_slave |
|
| innodb_additional_mem_pool_size |
1048576 |
| innodb_autoextend_increment |
8 |
| innodb_buffer_pool_awe_mem_mb |
0 |
| innodb_buffer_pool_size |
4194304 |
| innodb_checksums |
ON |
| innodb_commit_concurrency |
0 |
| innodb_concurrency_tickets |
500 |
| innodb_data_file_path |
ibdata1:10M:autoextend |
| innodb_data_home_dir |
|
| innodb_doublewrite |
ON |
| innodb_fast_shutdown |
1 |
| innodb_file_io_threads |
4 |
| innodb_file_per_table |
OFF |
| innodb_flush_log_at_trx_commit |
1 |
| innodb_flush_method |
|
| innodb_force_recovery |
0 |
| innodb_lock_wait_timeout |
50 |
| innodb_locks_unsafe_for_binlog |
OFF |
| innodb_log_arch_dir |
|
| innodb_log_archive |
OFF |
| innodb_log_buffer_size |
1048576 |
| innodb_log_file_size |
5242880 |
| innodb_log_files_in_group |
2 |
| innodb_log_group_home_dir |
.\ |
| innodb_max_dirty_pages_pct |
90 |
| innodb_max_purge_lag |
0 |
| innodb_mirrored_log_groups |
1 |
| innodb_open_files |
300 |
| innodb_rollback_on_timeout |
OFF |
| innodb_support_xa |
ON |
| innodb_sync_spin_loops |
20 |
| innodb_table_locks |
ON |
| innodb_thread_concurrency |
8 |
| innodb_thread_sleep_delay |
10000 |
| interactive_timeout |
28800 |
| join_buffer_size |
258048 |
| key_buffer_size |
8388600 |
| key_cache_age_threshold |
300 |
| key_cache_block_size |
1024 |
| key_cache_division_limit |
100 |
| language |
D:\MySQL_BIN_CA\share\english\ |
| large_files_support |
ON |
| large_page_size |
0 |
| large_pages |
OFF |
| lc_time_names |
en_US |
| license |
GPL |
| local_infile |
ON |
| log |
ON |
| log_bin |
ON |
| log_bin_trust_function_creators |
OFF |
| log_error |
D:\MySQL_LOG_CA\error.log |
| log_queries_not_using_indexes |
OFF |
| log_slave_updates |
OFF |
| log_slow_queries |
ON |
| log_warnings |
1 |
| long_query_time |
10 |
| low_priority_updates |
OFF |
| lower_case_file_system |
ON |
| lower_case_table_names |
1 |
| max_allowed_packet |
16776192 |
| max_binlog_cache_size |
4294967295 |
| max_binlog_size |
1073741824 |
| max_connect_errors |
10 |